基于express开发简单校内网站的难度大不大?
发布于 8 年前 作者 yangsuper666 5712 次浏览 来自 问答

本人是大三的学生,刚刚接触node希望在寒假做出来基于express的校内网站 基本功能是爬取教务处基本信息和学生话题讨论

34 回复

前端打算采用vue

我可以肯定,PHP+jquery 是更好的选择,从开发速度和可维护性上说,如果你熟悉的话,你楞要用JS也拦不住你。

不难,但是看和你一起的人技术栈是什么吧。 别硬上🙃

@broven 我一个人负责后端 前端是另一个同学 感觉node异步抓取教务处多个页面会比较快 所以选择node

@flamingtop 没有接触过php 希望能通过这个网站练习 node 不知道对于我这个初学者 难度大不大

@broven 之前用django写过简单的获取教务处信息的网站 但感觉django太臃肿 然后想再加一下功能 所以想用用node

不难。但是现在从0开始在寒假里做出来不容易。扣掉过年,寒假也没几天。 自豪地采用 CNodeJS ionic

@brickyang 想把基本的框架做出来 然后开学后慢慢添加

noddejs做非事务非交易的信息发布类型的应用很适合

如果是从实现需求的角度还是php吧,啪啪啪就撸完了,纯学习就算了

@yangsuper666 如果「话题讨论」是论坛,可以试试。Express 天生就适合做 RESTful API,我觉得难点会在前端。后端就是基本的对数据库 CRUD 操作。

@artisan 恩 算是学习加上实现需求 但是需求并不是很着急

@brickyang 好 谢谢你 其实还有一个想法是对每个版块(设想是每一门课)有一个数据统计和讨论(可能会用聊天室)方便以后选课… 因为这个学期选的课都太坑

还好吧 <br> <br><p>来自吊吊的 <a href=“https://github.com/ihanyang/cnode-vue” target="_blank">cnode-vue</a></p>

爬虫部分建议用nodejs,业务逻辑部分建议用java 自豪地采用 CNodeJS ionic

都是些什么建议哦 微框架可以用express koa,如果要全的话用thinkjs sails之类的吧

JS全栈工程师一枚,网站本身Node+Express+Mongoose架构就可以,爬虫的话request包+JSDOM+JQuery搞定,赶时间的话前端用VUE很适合,学习成本比其他前端框架要低一些,主要是文档很清晰易懂。 整体功能基本上一周能搞定——当然是对老手来说,新手的话也不至于太久,主要看学习能力和基础,这一点对PHP和Python来说也一样。 如果想学习Node的话可以从Express1开始,很适合用来入门,之后学了ES6可以逐渐转变到Koa1|2或Express2。

个人感觉你的这些基本需求的话服务端可以解耦成两部分: 一部分用Request+JSDOM+JQuery+Async做异步高性能爬虫开发,Mongoose将爬到的信息存到数据库里; 另一部由于业务逻辑绝大多数是同步逻辑,所以用Koa做同步快速开发,Mongoose对数据库进行存取,Koa的好处就是不需要用复杂的写法实现同步逻辑; 两部分访问同一个数据库,所以相当于使用数据连接在了一起。当然如果彻底解耦的话需要分成数据层和业务层,数据层对数据库进行操作,业务层拆分成爬虫业务和网站业务。

前端由于文章、论坛等功能属于组件重复性很高的功能,可以使用VUE组件化编程,vue-resource与服务端的koa-router使用REST风格的WEB API通信。 UI样式的话可以用Bootstrap,用很少的工作达到很好的效果,只是对于专业的前端工程师来说可能会有审美疲劳。。。

当然前端框架你想用Angular也可以,只不过Angualr1的好多概念太抽象不好理解,Angualr2的话要学Type Script增加了学习成本。不过Angualr太强大(重)对于你的需求来说相当于大炮打苍蝇,根据开发效率、学习成本、复杂度综合考虑的话可以用VUE,当然用jQuery或jQueryUI直接做也很快。

感觉你此处的痛点在于后端是否该用node,既然你前端已经决定采用vue,后端采用什么都无所谓吧,全是restapi获取数据然后渲染,我觉得你后面的工作70%会在前端上面,既然前端用上了js框架,为了前后端前后端统一语言,用node是你最佳选择了,我来帮你算算,如果用java(前提是你会java),安装java,学习springboot,学习各种注解,然后学习一款html解析工具,用php,少不了lamp组合,折腾一番,用node,npm i express -g, npm i express-generator -g, express my-web,cd my-web,npm i , npm start 就把你的后端跑起来了,然后你的重点就是了解下怎么使用cheerio分析抓取的html页面,把分析的结果存到mongo,如果需要事务你可以存到postgresql(安利下我分封装的pg-cli https://www.npmjs.com/package/pg-cli ),如果怕回调地狱,可以上co和thunkify消除回调地狱,express在这里就是个restapi的提供者而已了,查下api文档,怎么创建router,怎么使用模板引擎,你的重点是在vue这一块上,纠结用不用和难度大不大,还不如先敲如我上面几个命令先run起你的http服务器,然后学习下cheerio怎么用,选择个数据库(mongo or postgres),难度在哪里呢?我感觉在cheerio这里,你的重点是写爬虫和分析html页面,而不是express难度大不大

@libook 学习到了 谢谢你 辛苦打了这么字

@fantasticsoul 好哒 谢谢你的建议 寒假我会在这里说一下我的进度 到时候可能还需要你的建议

@libook 之前学过django并做过一些网站 用node主要是感觉爬虫异步会比较快 再有就是希望加上聊天室的功能 socket.io和node搭配也不错 还有就是前端也是js 感觉用node的话 两个人前后端都能开发

@bendise 好 谢谢你的意见

@yangsuper666 有什么问题可以随时问

@yangsuper666 好的,没问题的啊,到时候你可以把project放到github,可以帮你看看哈哈,也可以加我qq多多交流

@libook 好的 谢谢大佬

@fantasticsoul 好的 谢谢大佬

@yangsuper666 异步爬虫确实会比较快,程序写起来也很简单,主要思路就是抓取网页=》根据网页文本创建Docuemt对象=》用jQuery筛选有价值的内容=》存入数据库。 使用Async进行流程控制的话几乎会把服务器的资源充分用满。

@libook 恩恩 对于爬虫部分我的想法是这样的 其实我在担心 类似论坛和获取课程数据部分(方便每次选课,这部分数据会由学生来提交)

@yangsuper666 你担心的具体是什么呢?学生提交数据的并发压力?

@libook 并发的情况应该很小 抱歉 具体的还没有想好 因为有做app的打算 express是不是也可以作为app的服务端

@yangsuper666 APP用什么服务器取决于你用什么通信方式,如果用WEB API通信的话就可以用Express,如果用TCP通信的话就要用WEB Socket

@libook 好的 我对app通信还没有具体的了解 会慢慢学习的 感谢你们的帮助

回到顶部