2016-11-24 32 views
0

我想通過PARAMS在控制器B聲明的方法暴露的方法,說這是conB.js和看起來像這樣傳遞參數去從另一個控制器

module.exports.verify = function(req,res,next){ 
// how to get it here? 
} 

然後現在我有conA.js,我怎麼能傳遞參數呢?

我知道首先,我必須把它列入,

var ConB = require('ConB'); 

但如何傳遞參數去驗證像ConB.verify(「PARAM」)方法,這樣我可以在ConA.js怎麼做呢?

+0

你能解釋一下你真正想做什麼嗎? –

+0

@DhavalChaudhary我想將param從控制器傳遞給控制器​​。更新了我的答案。 –

回答

1

不知道我打開你想做的事情,但如果你想打電話驗證一個參數,你必須定義爲接受參數的函數。所以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.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); 
} 
+0

如果我將多個參數放入驗證,我的req,res下一步是哪裏? –

+0

你需要驗證他們嗎?我會更新我的答案,但不明白你想要做什麼來驗證它的困難。 – filippo

0

文件 - conB.js

module.exports.verify = function(req,res,next){ 

} 

文件 - conA.js //這裏要使用出口對象從conB.js

所以,你可以這樣做什麼,如果這兩個文件都在相同的文件夾中,否則您必須使用相對路徑。

var conB = require('./conB.js') 
+0

我知道如何導入和導出,我的問題是如何傳遞參數。 –

+0

導出對象,如conB = {someName:function(req,res,next){}};另一方面嘗試conB.someName(yourParameters)。我希望這將有所幫助。 –

相關問題