Express.js在MEAN栈中做什么?
我最近已经进入了AngularJS,我喜欢它。 对于即将到来的项目,我正在寻找使用MEAN堆栈(MongoDB,Express,Angular,Node)。 我对Angular非常熟悉,对于MongoDB和Node在堆栈中的用途我有一点点的了解。 不过,我不太了解Express.js的用途是什么。 MEAN堆栈是否必不可less? 你会在传统的MySQL,PHP,JavaScript应用程序中比较它? 它是做什么,其他三个组件不能做?
另外,如果有人想自己承担堆栈的四个部分如何协同工作,那就太好了。
- MongoDB =数据库
- Express.js =后端Web框架
- Angular =前端框架
- Node =后台平台/ Web框架
基本上,Express所做的就是通过提供一个稍微简单的接口来创buildWeb请求,以创build请求端点,处理cookie等,而不是像vanilla Node那样。 你可以把它从等式中删除,但是你必须做更多的工作来提升你的web应用程序。 节点本身可以做任何事情,快递正在做(快递是用节点实现的),但是快递只是把它包装在一个更好的包中。
我会比较快速的一些PHP Web框架在你描述的堆栈,像苗条的东西。
您可以将Express视为用于使用Node.js创buildWeb应用程序的工具带。 它提供了几乎所有你需要做的构buildWeb服务器的function。 如果你用vanilla Node.js编写相同的function,你将不得不写更多的代码。 以下是Express所做的几个例子:
- REST路由很简单,就像
app.get('/user/:id', function(req, res){ /* req.params('id') is avail */ });
- 一个中间件系统,允许你插入不同的同步function,对请求或响应做不同的事情。 authentication或添加属性
-
app.use(function(req,res,next){ req.timestamp = new Date(); next(); });
-
- parsingPOST请求主体的函数
- 跨站点脚本预防工具
- 自动HTTP头处理
-
app.get('/', function(req,res){ res.json({object: 'something'}); });
-
一般来说,Sinatra对于Ruby来说就像Express对Node.js一样。 我知道这不是一个PHP的例子,但我不太了解PHP框架。
Express处理cookies等内容,parsing请求主体,形成响应和处理路由。
它也是应用程序的一部分,它侦听套接字来处理传入的请求。
来自express github的一个简单例子
var express = require('express'); var app = express(); app.get('/',function(req,res){ res.send('Hello World'); }); app.listen(3000);
显示创build快速服务器,创build一个路线app.get('/'...
并打开端口来监听传入的http请求。