node.js上除了Express还有哪些好用的web开发框架?
一、node.js上除了Express还有哪些好用的web开发框架
这个就无需再介绍了吧, 几乎已经成为闭眼推荐的首位, 有点在于简单灵活, 缺陷也在于过于简单, 相当于每个功能都需要自己选择不同组件搭建, 虽然有各自脚手架帮助, 但对于开发大一点的系统还是缺乏必要的代码框架, 光搭建整合基础框架就会花不少时间, 对于新上手node.js不久的笔者而言,自由灵活也意味着容易犯错, 较好有类似Djongo/ThinkPHP那样out-of-box即开即用的开发框架快速上手而不是坐而论道.
优点: 插件众多, 简单, 自由, 丰俭由人, 适合于简单业务逻辑模型
缺点: 缺少规范性, 需要自己选择搭配的组件太多, 不太适合应用复杂的业务.
KoaExpress基于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) 两大部分。头部描述浏览器所需的信息,主体包含所要说明的具体内容。

猜你喜欢LIKE
相关推荐HOT
更多>>
mysql怎么查看连接池是否已满?
一、mysql怎么查看连接池是否已满1.查看连接数配置(MySQL服务器允许的最大连接数16384)show variables like ‘%max_connections%’2.查看当前...详情>>
2023-10-17 21:20:19
什么是职场情商,如何提高?
什么是情商?情商是一个 20 世纪 90 年代作为学术话题出现的概念,并迅速成为商业心理学和职场动态研究的重要组成部分。它通常被称为 EQ(情商...详情>>
2023-10-17 20:16:30
vector, list, map等容器使用场合是什么?
一、vector, list, map等容器使用场合vector适用于对象简单,变化较小,并且频繁随机访问的场景。list适用经常进行插入和删除并且不经常随机访...详情>>
2023-10-17 19:45:03
数据挖掘中涉及的关联规则在实际生活中的应用有哪些?
一、数据挖掘中涉及的关联规则在实际生活中的应用关于关联规则分析,这篇文章可以认真学习一下,讲的比较全面,关联规则分析还在零售、快消、电...详情>>
2023-10-17 18:40:06热门推荐
sql server2012r2所在服务器做端口限制,需要开放什么端口才能继续访问数据库?
沸Oracle有什么优势和劣势?
热数据库聚集索引非聚集索引实现上有哪些区别?
热数据库(如oracle、mysql)及编程语言(php、python、perl、lisp)的区别?
新CSS 隐藏页面元素有哪些方法?
除了cx_Oracle,python还可以通过什么方式访问Oracle数据库?
SQL开启事务处理的语句 START TRANSACTION 和BEGIN TRAN的区别?
Android适配你需要学习哪些?
开发web应用,好的开发流程是怎么样的?
为什么说Gradle是Android进阶绕不去的坎?
mysql怎么查看连接池是否已满?
WHERE中有很多IN判断怎么提速?
软件开发要遵循哪些事项?
有了innodb buffer pool为什么要有redis?
技术干货






