使用app.use和app.get的区别

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我对表达式和node.js有点陌生,我也不知道app.use和app.get之间的区别。看来你可以用这两种方式发送信息。例如:

app.use('/',function(req, res,next) {
    res.send('Hello');
    next();
});

似乎是这样的:

app.get('/', function (req,res) {
   res.send('Hello');
});
提问于
用户回答回答于

app.use()用于将中间件绑定到应用程序。 该路径是“装载”或“前缀”路径,并限制中间件仅适用于以它开头的任何请求的路径。 它甚至可以用来嵌入另一个应用程序: // subapp.js var express = require('express'); var app = modules.exports = express(); // ...

// server.js
var express = require('express');
var app = express();

app.use('/subapp', require('./subapp'));

// ...
通过指定/作为“挂载”路径,app.use()将响应以/开头的所有路径,而不管使用的是何种HTTP动词:

GET /
PUT / foo
POST / foo / bar
等等
另一方面,app.get()是Express'应用程序路由的一部分,用于通过GET HTTP动词请求时匹配和处理特定路由:

GET /
而且,你的app.use()例子的等价路由实际上是:

app.all(/^\/.*/,function(req,res){
 res.send('你好');
});
用户回答回答于

app.use是Express所依赖的中间件框架Connect的“低级”方法。

以下是我的指导方针:

  • 使用app.get如果想公开一个get方法。
  • 使用app.use如果想要添加一些中间件(HTTP请求到达之前的处理程序到您在Express中设置的路由),或者如果希望将路由模块化(例如,公开来自NPM模块的一组路由,其他Web应用程序可以使用)。

扫码关注云+社区