2013-10-16 47 views
45

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

另外,如果有人想给自己取了如何在四个部分堆栈工作起来,那简直太好了。

+3

使node.js工作变得更加简单,创建路由,而不是。我推荐阅读:http://evanhahn.com/understanding-express-js/ – tymeJV

+1

更新了Evan Hahn链接:http://evanhahn.com/understanding-express-3/(v3)和http:// evanhahn。 com/understanding-express /(v4) – kjhughes

回答

52
  • 的MongoDB =数据库
  • Express.js =后端web框架
  • 角=前端框架
  • 节点=后端平台/ web框架

基本上, Express所做的是通过提供一个更简单的接口来创建请求端点,处理cookie等,而不是vanilla Node,从而使您可以轻松创建Web应用程序。你可以将它从等式中删除,但是你必须在掀起你的web应用程序上做更多的工作。节点本身可以​​做一切表达的事情(表达是用节点实现的),但是表达只是将它包装在一个更好的包中。

我会比较快在你所描述的栈的PHP Web框架,像slim

+0

对于MS堆栈是否公平地说节点<=> IIS Web托管服务器Express.js <=> ASP .Net和Angular <=> Javascript/HTML页面/ MVC视图和MongoDB <=> SQL Server。我有点困惑,因此询问。我可以使用Nodejs编写的代码进行数据库连接,就好像情况那样,那么NodeJs肯定不仅仅是像IIS这样的虚拟主机平台。在连接到DB获取域模型信息的MEAN堆栈中。它是ExpressJS还是NodeJS? – RBT

4

快速处理之类的饼干,解析请求主体,形成响应与处理的路线。

也就是监听套接字来处理传入的请求的应用程序的一部分。

一个简单的例子,从express github

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

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

显示Express服务器的创建,创建路由app.get('/'...并打开端口监听传入的HTTP请求。

15

您可以将Express视为用于使用Node.js创建Web应用程序的实用工具带。它提供了几乎所有你需要做的构建Web服务器的功能。如果你要用vanilla Node.js编写相同的功能,你将不得不编写更多的代码。这里有什么快速做了几个例子:

  • 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框架。

+2

Laravel是PHP。 http://laravel.com/ –