首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将param传递给从另一个控制器公开的方法

将param传递给从另一个控制器公开的方法
EN

Stack Overflow用户
提问于 2016-11-24 12:23:25
回答 2查看 57关注 0票数 0

我想将params传递给在控制器B中声明的方法,表示它是conB.js,如下所示

代码语言:javascript
复制
module.exports.verify = function(req,res,next){
// how to get it here?
}

那么现在我有了conA.js,我如何将参数传递给它呢?

我知道首先我得把它包括进去

代码语言:javascript
复制
var ConB = require('ConB');

但是如何通过param来验证像ConB.verify('param')这样的方法,这样我就可以在ConA.js中得到它了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-24 13:17:02

我不确定你想要做什么,但是如果你想用一个参数调用,你必须把它定义为接受参数的函数。所以conB.js是:

代码语言:javascript
复制
module.exports.verify = function(param){
   // do something with param
   return something;
}

然后在conA.js中:

代码语言:javascript
复制
var conB = require('./conB.js');
var result = conB.verify(your_param);

一个接一个的评论..。

您还可以将不同的控制器编写为表示中间件,并使用res.locals传递参数。请参阅:http://expressjs.com/en/guide/using-middleware.html

在这种情况下,应用程序中需要一个按顺序调用中间件的路由:

代码语言:javascript
复制
app.use("/testUrl", consB.verify, cansA.doSomething);

那么consB.js就是这样的:

代码语言:javascript
复制
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

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-11-24 12:43:30

文件- conB.js

代码语言:javascript
复制
module.exports.verify = function(req,res,next){

}

文件- conA.js //此处您希望使用从conB.js导出的对象

所以,如果两个文件都在同一个文件夹中,那么您可以这样做,否则您必须使用相对路径。

代码语言:javascript
复制
 var conB = require('./conB.js') 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40786349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档