我刚刚阅读了快递文档并找到了这两个术语,app.use();并且router.use();
我知道app.use();在节点中用于在路径上安装中间件,我们经常在大多数节点应用程序中使用它.但router.use();它们都是一样的么?如果没有,那么差异是什么?
我在这里读到了路由器.我也在SO上发现了类似的问题"express.Router"与使用"app.get"的路由有什么区别? 和app.all('*')和app.use('/')之间的区别,但它们并没有真正回答我的问题.谢谢.
两者之间有区别吗?
app.use('/some/path', function(req, res, next() {})
和
app.all('/some/path', function(req, res, next() {})
它们都是中间件函数,只能被调用/某些/路径请求,对吧?
我希望在express.js上过滤之前做一个类似rails的过滤器.我有一个名为photo.js的文件,我将所有与照片相关的路线放在那里.但我需要将未在我的系统上进行身份验证的用户重定向到登录页面.我想做一个beforeFilter,所以我不需要把这个逻辑放在我的所有路线中......
谢谢
两者之间有区别吗?
app.use('*', function (req, res, next) {
});
Run Code Online (Sandbox Code Playgroud)
和...
app.all('*', function (req, res, next) {
});
Run Code Online (Sandbox Code Playgroud) app.all('*', function(req, res, next) {
Run Code Online (Sandbox Code Playgroud)
对比
app.use(function (req, res, next) {
Run Code Online (Sandbox Code Playgroud)
有什么不同?不都接受对服务器的每个请求吗?
我正在处理的 API 中有 3 种不同的方法响应,目前设置如下:
app.use('/image', require('./routes/image/get'));
app.post('/image', require('./routes/image/post'));
app.put('/image', require('./routes/image/put'));
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?