app.use() 和 app.get() 的区别

时间:2021-01-21 17:52:34

标签: node.js express middleware

var express = require('express'); 
var app = express(); 
var PORT = 3000; 
  
// This middleware will not allow the 
// request to go beyond it 
app.use(function (req, res, next) { 
    console.log("Middleware called") 
    next(); 
}); 
    
// Requests will never reach this route 
app.get('/user', function (req, res) { 
    console.log("/user request called"); 
    res.send('Welcome to GeeksforGeeks'); 
}); 
  
app.listen(PORT, function(err){ 
    if (err) console.log(err); 
    console.log("Server listening on PORT", PORT); 
}); 

你能解释一下“这个中间件不允许超出它的请求”。事实上,输出是正确的,但为什么这样写? 代码来自geeksforgeeks

2 个答案:

答案 0 :(得分:0)

由于第一个中间件有 next() 调用,它肯定会将处理传递给下一步(即下一个适当的中间件函数),因此,看起来注释无效。

在控制台日志中,您应该至少看到中间件调用行。

答案 1 :(得分:0)

app.use() 和 app.get() 有什么区别? 好吧,GET 是一种用于从服务器接收数据的 HTTP 方法。例如一个 HTML 页面。 但是中间件是在实际服务器方法之前调用的应用程序,您可以访问称为 next() 的东西以将请求传递到下一个路由。例如,您可以定义一个中间件来检查用户登录,如果它已登录,您可以将其传递给下一个路由。

关于该代码: 评论不正确!由于中间件中使用了 next(),中间件将允许请求超出范围。

相关问题