Express.js在MEAN堆栈中做了什么?

Nic*_*ise 53 mongodb node.js express angularjs

我最近已经进入AngularJS并且我喜欢它.对于即将到来的项目,我希望使用MEAN堆栈(MongoDB,Express,Angular,Node).我对Angular非常熟悉,我对堆栈中MongoDB和Node的用途有一点了解.但是,我真的不明白Express.js的用途是什么.MEAN堆栈是否必不可少?你会在传统的MySQL,PHP,javascript应用程序中将它与什么进行比较?它的其他三个组件不能做什么呢?

此外,如果有人想要自己了解堆栈的四个部分如何协同工作,那就太好了.

jak*_*kee 65

  • MongoDB =数据库
  • Express.js =后端Web框架
  • Angular =前端框架
  • Node =后端平台/ Web框架

基本上,Express所做的是通过提供一个稍微简单的界面来创建您的请求端点,处理cookie等,而不是vanilla Node,它使您能够轻松创建Web应用程序.你可以将它排除在等式之外,但是你必须在制作网络应用程序时做更多的工作.节点本身可以​​做快递所做的一切(表达是用节点实现的),但表达只是将它包装在一个更好的包中.

我会将Express与你描述的堆栈中的一些PHP Web框架进行比较,比如苗条.


Jon*_*dlm 20

您可以将Express视为使用Node.js创建Web应用程序的实用程序带.它提供了构建Web服务器所需的几乎所有功能.如果您要使用vanilla Node.js编写相同的功能,则必须编写更多代码.以下是Express的功能示例:

  • 使用类似的东西可以简化REST路由
    • app.get('/user/:id', function(req, res){ /* req.params('id') is avail */ });
  • 一个中间件系统,允许您插入不同的同步函数,这些函数通过请求或响应执行不同的操作,即.身份验证或添加属性
    • app.use(function(req,res,next){ req.timestamp = new Date(); next(); });
  • 用于解析POST请求主体的函数
  • 跨站点脚本预防工具
  • 自动HTTP标头处理
    • app.get('/', function(req,res){ res.json({object: 'something'}); });

一般来说,Sinatra是Ruby,Express是Node.js. 我知道这不是一个PHP示例,但我对PHP框架知之甚少.


jer*_*emy 5

Express 处理诸如 cookie、解析请求正文、形成响应和处理路由之类的事情。

它也是应用程序的一部分,它侦听套接字以处理传入的请求。

来自express github 的一个简单示例

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('Hello World');
});
app.listen(3000);

显示快速服务器的创建,创建路由app.get('/'...并打开端口以侦听传入的 http 请求。