我想将params传递给控制器B中声明的方法,说它是conB.js并且看起来像这样
module.exports.verify = function(req,res,next){
// how to get it here?
}
然后现在我有conA.js,我怎么能把参数传递给它?
我首先知道我必须加入它,
var ConB = require('ConB');
但如何传递param以验证方法如ConB.verify('param')以便我可以在ConA.js中获取它?
答案 0 :(得分:1)
不确定我是否正在尝试做什么,但是如果要使用参数调用verify,则必须将其定义为接受参数的函数。所以conB.js是:
module.exports.verify = function(param){
// do something with param
return something;
}
然后在conA.js:
var conB = require('./conB.js');
var result = conB.verify(your_param);
评论后更新......
您还可以将不同的控制器编写为快速中间件,并使用res.locals传递参数。请参阅:http://expressjs.com/en/guide/using-middleware.html
在这种情况下,您需要在app中使用一个按顺序调用中间件的路径:
app.use("/testUrl", consB.verify, cansA.doSomething);
然后consB.js就像:
module.exports.verify = function(req, res, next){
// do something with param and store something in res.locals
res.locals.user = "foo";
// then remember to call next
next();
}
ConsA.js
module.exports.doSomething = function(req, res, next) {
// use locals modified by previous middleware
res.end("The user of the request is: "+res.locals.user);
}
答案 1 :(得分:0)
file - conB.js
module.exports.verify = function(req,res,next){
}
file - conA.js //这里你想使用来自conB.js的导出对象
所以如果两个文件都在同一个文件夹中你可以做到这一点,否则你必须使用相对路径。
var conB = require('./conB.js')