一、node.js上除了Express还有哪些好用的web开发框架
Express
这个就无需再介绍了吧, 几乎已经成为闭眼推荐的首位, 有点在于简单灵活, 缺陷也在于过于简单, 相当于每个功能都需要自己选择不同组件搭建, 虽然有各自脚手架帮助, 但对于开发大一点的系统还是缺乏必要的代码框架, 光搭建整合基础框架就会花不少时间, 对于新上手node.js不久的笔者而言,自由灵活也意味着容易犯错, 较好有类似Djongo/ThinkPHP那样out-of-box即开即用的开发框架快速上手而不是坐而论道.
优点: 插件众多, 简单, 自由, 丰俭由人, 适合于简单业务逻辑模型
缺点: 缺少规范性, 需要自己选择搭配的组件太多, 不太适合应用复杂的业务.
Koa
Express基于ES6的升级版, async/await解决ES5 callback hell的痼疾, 但是选择框架不仅仅是框架本身, 同时还要看插件扩展的丰富和成熟度, 因为没有用过担心后面遇坑填不平而放弃, 做研究可以大胆, 做产品必须谨慎.
优点: ES6语法, 逻辑易懂
缺点: 刚开始应用不久, 担心有扩展不足和不兼容问题
Meteor
一个完全统一前后台开发的一站式框架, 从后台数据库到前端view全部包含在内, 特别适合于重度依赖websocket的SPA(单页面应用)开发, 国外流行的Asana就是完全采用Meteor框架开发.
优点:一站式解决方案, 前后台一体开发, 强大的websocket + mongoDB支持
缺点:自由度不够, 和传统的Web框架概念差异较大.
socketstream
如果说RESTful是Ajax的概念基础, socketstream实际上更接近于早期RPC的思路, 将函数调用(function name + parameters)建构在websocket协议层之上, 例如下面这段代码其实就是调用远程函数计算.
//– server side in /server/rpc/app.js
exports.actions = function(req, res, ss){
// return list of actions which can be called publicly
return {
square: function(number){
res(number * number);
}
}
}
//– client request
ss.rpc(‘app.square’, 25)
优点: 完全web socket, 函数+参数==>返回值概念简单
缺点:和主流的RESTful概念偏离较大, 很少看到实际应用案例
Sails.js
这是本文的主角, 相当于针对典型应用框架所需组件在Express基础上的集成封装, 把日常开发常用的功能都给你集成好了, 开箱即用, 完全兼容Express的middleware, 如果了解ThinkPHP就更容易上手了, RoR / Convention over Configuration的概念可以立即进入实际业务开发, 反正做什么事情应该怎么做人家都给你规定好了, 可以从实验代码逐步迭代到中大项目的生产代码.
除了传统的HTTP RESTful外还同时支持websocket – 同一个请求协议既可以通过Ajax发送, 也可以通过websocket发送, 这一点让人赞赏.
优点: 开箱即用的全功能Express增强框架, 内置支持websocket
缺点:(据说)ORM性能不好
延伸阅读:
二、HTML是什么
HTML(Hyper Text Mark-up Language )即超文本标记语言,是 WWW 的描述语言,由 Tim Berners-lee提出。设计 HTML 语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。这样,你只要使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。 HTML文本是由 HTML命令组成的描述性文本,HTML 命令可以说明文字、 图形、动画、声音、表格、链接等。 HTML的结构包括头部 (Head)、主体 (Body) 两大部分。头部描述浏览器所需的信息,主体包含所要说明的具体内容。