use*_*968 3 middleware node.js express
在Express中间件中,应该采用3个参数:request,response,next.但是,在我从书中复制的代码中的第二个中间件,但只使用请求,响应.这是什么原因?接下来是可选的?
var express = require("express");
var http = require("http");
var app = express();
app.use(function(request, response, next) {
console.log("In comes a " + request.method + " to " + request.url);
next();
});
app.use(function(request, response) {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Hello, world!");
});
http.createServer(app).listen(3000);
Run Code Online (Sandbox Code Playgroud)
jfr*_*d00 13
next()当您希望此请求的路由继续到下一个中间件或此请求的下一个路由处理程序时,将调用此方法.通常有多个中间件可以检查给定的请求,因此如果您没有发送响应并希望正常路由继续此请求,那么您将next()在完成处理并且希望路由继续时调用.
如果您已经发送了响应,因此不希望路由继续,那么您不会打电话next().
您是否声明参数取决于您自己next.如果你从不打算调用它,那么你不需要将它声明为参数(它仍然被传递,但如果你不打算使用它,你不必声明它).
随着express.js有4种基本的处理程序。
如果您有2个参数,无论您如何称呼,express都会始终为其分配一个req和res。这只是快递社区广泛使用的一种调用约定,它使代码更清晰,可读性和可理解性。
| 归档时间: |
|
| 查看次数: |
2719 次 |
| 最近记录: |