【发布时间】:2018-01-20 22:39:15
【问题描述】:
一个简单的 Express 应用:
var express = require('express');
var app = express();
var router = express.Router();
function test (req, res, next) {
}
我正在尝试找出这两种实现方式的区别:
router.use('/myRoute', test)
router.post('/myRoute', function (req, res) {
});
还有:
router.post('/myRoute', test, function (req, res) {
});
我从文档 (https://expressjs.com/en/4x/api.html#middleware-callback-function-examples) 和 (https://expressjs.com/en/4x/api.html#router.use) 中了解到的没有。但这不可能吗?
【问题讨论】:
-
刚刚进行了编辑,这是一个错字。这是同一条路线。
-
在这种情况下:
use用于所有 HTTP 动词,post仅用于 HTTP POST 调用,因此在第一个示例中,test将针对所有 HTTP 调用运行,无论它们是否're get, post, options, etc. etc. 在第二个中,你设置了一个 only 用于 post 的路由