我最近已经进入AngularJS并且我喜欢它。对于即将到来的项目,我希望使用MEAN堆栈(MongoDB,Express,Angular,Node)。我对Angular非常熟悉,我对堆栈中MongoDB和Node的用途有一点了解。但是,我真的不明白Express.js的用途是什么。 MEAN堆栈是否必不可少?你会在传统的MySQL,PHP,javascript应用程序中将它与什么进行比较?其他三个组件不能做什么呢?
另外,如果有人想要自己了解堆栈的四个部分如何协同工作,那就太好了。
答案 0 :(得分:62)
基本上,Express所做的是,通过提供一个稍微简单的界面来创建请求端点,处理cookie等,而不是vanilla Node,它使您能够轻松创建Web应用程序。你可以将它排除在等式之外,但是你必须在制作网络应用程序时做更多的工作。节点本身可以做快递所做的一切(快递是用节点实现的),但表达只是将它包装在一个更好的包中。
我会将Express与您描述的堆栈中的某些PHP Web框架进行比较,类似于slim。
答案 1 :(得分:20)
您可以将Express视为使用Node.js创建Web应用程序的实用程序带。它提供了构建Web服务器所需的几乎所有功能。如果您要使用vanilla Node.js编写相同的功能,则必须编写更多代码。以下是Express所做的几个例子:
app.get('/user/:id', function(req, res){ /* req.params('id') is avail */ });
app.use(function(req,res,next){ req.timestamp = new Date(); next(); });
app.get('/', function(req,res){ res.json({object: 'something'}); });
一般来说,Sinatra是Ruby,Express是Node.js.我知道这不是一个PHP示例,但我对PHP框架知之甚少。
答案 2 :(得分:4)
Express处理诸如cookie之类的内容,解析请求主体,形成响应和处理路由。
它也是应用程序的一部分,它监听套接字以处理传入的请求。
的简单示例var express = require('express'); var app = express(); app.get('/', function(req, res){ res.send('Hello World'); }); app.listen(3000);
显示快速服务器的创建,创建路由app.get('/'...
并打开端口以侦听传入的http请求。
答案 3 :(得分:1)
在基于Node.js的框架中表达,简化了编写服务器端代码和逻辑的过程。
添加了许多实用程序功能并提供了附加功能,通常使事情变得更容易。
Express是基于中间件的:它基本上是通过一系列中间件链(步骤)来对传入的请求进行漏斗处理,在中间件中我们可以对请求进行处理,从请求中读取一些数据,对其进行处理,检查是否用户已通过身份验证或基本上立即发送回响应。
该中间件链使我们能够编写非常结构化的代码
答案 4 :(得分:1)
Express是基于Http模块顶部的 nodejs框架,具有更多可用和更好的功能,例如处理路由的简便方法。
例如:使用HTTP
var http = require('http');
//create a server object:
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'}); // http header
var url = req.url;
if(url ==='/about'){
res.write('<h1>about us page<h1>'); //write a response
res.end(); //end the response
}else if(url ==='/contact'){
res.write('<h1>contact us page<h1>'); //write a response
res.end(); //end the response
}else{
res.write('<h1>Hello World!<h1>'); //write a response
res.end(); //end the response
}
}).listen(3000, function(){
console.log("server start at port 3000"); //the server object listens on port 3000
});
使用Express:
var express = require('express');
var app = express();
app.get('/about',function(req,res)=>{
res.write('<h1>about us page<h1>'); //write a response
res.end();
})
答案 5 :(得分:0)
Express允许您轻松管理http请求。 您需要执行以下操作才能获取请求
const Http = new XMLHttpRequest();
const url='https://jsonplaceholder.typicode.com/posts';
Http.open("GET", url);
Http.send();
Http.onreadystatechange=(e)=>{
console.log(Http.responseText)
}
在快递中,您需要快递并使用它并发出http请求
const express = require("express")
const app =express();
app.get("url",callback function);