【问题标题】:Difference between app.use() and app.get()app.use() 和 app.get() 之间的区别
【发布时间】:2021-01-21 17:52:34
【问题描述】:
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

【问题讨论】:

标签: node.js express middleware


【解决方案1】:

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

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

【讨论】:

  • 谢谢@rouzbehsbz
【解决方案2】:

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

在控制台日志中,您应该至少看到 Middleware called 行。

【讨论】:

  • 谢谢@slkorolev
猜你喜欢
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2015-01-25
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
  • 2017-06-09
相关资源
最近更新 更多