发布于 2012-09-27 15:27:34
这过于简单了,但是Express.js之于Node.js就像Ruby on Rails或Sinatra之于Ruby一样。
Express 3.x是一个轻量级的web应用程序框架,有助于在服务器端将web应用程序组织到MVC架构中。您可以为模板语言使用各种选择(如EJS、Jade和Dust.js)。
然后,您可以使用带有Mongoose (用于建模)的MongoDB之类的数据库为您的Node.js应用程序提供后端。Express.js基本上可以帮助您管理一切,从路由到处理请求和视图。
Redis是一个键/值存储--通常用于Node.js应用程序中的会话和缓存。你可以用它做更多的事情,但这就是我使用它的目的。我使用MongoDB处理更复杂的关系,比如行-项<->订单<->用户关系。有一些模块(最值得注意的是connect-redis)可以与Express.js一起工作。您需要在服务器上安装Redis数据库。
下面是Express3.x指南的链接:https://expressjs.com/en/3x/api.html
发布于 2013-07-08 01:54:01
1)什么是Express.js?
Express.js是一个Node.js框架。它是目前最流行的框架(在NPM上最受欢迎)。
。
它是围绕Connect中间件的配置和粒度简单性构建的。有些人将Express.js比作Ruby Sinatra和笨重而固执己见的Ruby on Rails。
2) Node.js的用途是什么?
你不必一遍又一遍地重复相同的代码。Node.js是一个低级的I/O机制,它有一个超文本传输协议模块。如果你只是使用一个超文本传输协议模块,很多工作,比如解析负载、cookie、存储会话(在内存中或在Redis中)、基于regular expressions选择正确的路由模式等,都需要重新实现。对于Express.js,它就在那里供您使用。
3)为什么我们真的需要Express.js?它对我们使用Node.js有什么用处?
第一个答案应该能回答你的问题。如果不是,那么尝试用普通的REST (即只使用核心模块)编写一个小型的Node.js服务器,然后用Express.js编写。后者可以减少5-10倍的时间和代码行数。
什么是Redis?它是Express.js自带的吗?
Redis是一种快速持久的键值存储。您可以选择使用它通过Express.js存储会话,但您不需要这样做。默认情况下,Express.js具有用于会话的内存存储。Redis还可用于排队作业,例如,电子邮件作业。
查看my tutorial on REST API server with Express.js。
MVC,但不是它本身
Express.js本身是而不是,是一个模型-视图-控制器框架。您需要将自己的对象关系映射库,如用于MongoDB的Mongoose、用于SQL数据库的Sequelize (http://sequelizejs.com)、用于许多数据库的Waterline (https://github.com/balderdashy/waterline)放入堆栈中。
替代方案
要考虑的其他Node.js框架(https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API):
更新:我整理了这个帮助人们选择Node.js框架的资源:http://nodeframework.com
UPDATE2:我们向nodeframework.com添加了一些GitHub统计数据,所以现在您可以在一个页面上比较30+框架的社会证明级别(GitHub星级)。
全栈:
只需使用REST API:
Ruby on Rails类似于:
Sinatra类似于:
其他:
中间件:
静态站点生成器:
发布于 2016-04-12 19:44:26
Express.js是一个Node.js web应用程序服务器框架,设计用于构建单页面、多页面和混合web应用程序。它是node.js事实上的标准服务器框架。
构建在Express上的框架。
有几个流行的Node.js框架构建在Express上:
LoopBack:高度可扩展的开源Node.js框架,用于快速创建动态端到端REST API。
Sails: Node.js的MVC框架,用于构建实用的、生产就绪的应用程序。
Kraken:通过提供结构和约定来扩展Express的安全和可伸缩层。
意思:固执己见的全栈JavaScript框架,简化并加速了web应用程序的开发。
,
,
对我们使用Node.js有何用处?
Express添加了非常简单的路由和对Connect中间件的支持,允许许多扩展和有用的功能。
例如,
https://stackoverflow.com/questions/12616153
复制相似问题