我正在做一个 MEAN 项目,我们有一些像这样定义的 api 路由:
//products.controller.js
var express = require('express');
var router = express.Router();
const m = require('../../middlewares');
router.get('/products', [m.functionA, m.functionB, m.functionC], getProducts);
router.post('/products', [m.functionA, m.functionB, m.functionC], addNewProduct);
module.exports = router;
function getProducts(req, res) {
//code
}
function addNewProduct(req, res) {
//code
}
................................
//middlewares.js
function functionA(req, res, next) {
//code
}
function functionB(req, res, next) {
//code
}
function functionC(req, res, next) {
//code
}
现在我可以在这里访问 req、res 和 next。如何将自定义参数传递给这些中间件函数?
我查看了一些 SO 问题和其他文章,发现我可以这样做:
[m.functionA('data'), m.functionB('data'), m.functionC('data')]
但是在这样做时,我得到了 req, res 未定义的错误。
任何人都可以帮助/建议如何实现这一点。 让我知道是否需要在此处添加任何其他详细信息。
最佳答案
如果您想使用 m.functionA('data')
,Express 中间件中的一个常见范例是创建一个将参数作为参数的函数,并返回一个中间件功能:
function functionA(customParameter) {
return function(req, res, next) {
// code
}
}
内部函数(返回的函数)可以访问 customParameter
以及 req/res/next
。
关于node.js - 如何向 Express 路由中的中间件函数发送参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46240248/