我有module.exports
module.exports = {
defaultStrings: function() {
return "Hello World" +
"Foo - Bar";
},
urlSlug: function(s) {
return s.toLowerCase().replace(/[^\w\s]+/g,'').replace(/\s+/g,'-');
}
};
我希望能够在函数request
内使用response
或defaultStrings
,如何在给定代码的最小更改的情况下包含该内容?
defaultStrings: function(req, res, next) { // <--- This is not working it says Cannot call method 'someGlobalFunction' of undefined
return "Hello World" +
"Foo - Bar" + req.someGlobalFunction();
},
在我的app.js
我需要
strings = require('./lib/strings'),
这就是在app.js
app.get('/',
middleware.setSomeOperation,
routes.index(strings);
答案 0 :(得分:2)
您何时致电defaultStrings
?如果您是通过routes
直接使用app.get("some_url", defaultStrings)
进行呼叫,则可以使用req
和res
。
编辑:您的content = strings.defaultStrings();
函数内部似乎是index
。为了传递req
和res
参数,您只需将呼叫更改为content = strings.defaultStrings(req,res,cb)
,其中cb
是由index
定义的回调。
答案 1 :(得分:0)
我假设你正在使用node.js和express。
如果您想要访问http请求和响应,您可以选择以下几个选项:
添加myMiddleware功能作为所有路线的中间件
var myMiddleware = function(req, res, next) {
console.log(req.route); // Just print the request route
next(); // Needed to invoke the next handler in the chain
}
app.use(myMiddleware); //This will add myMiddleware to the chain of middlewares
将函数myMiddleware添加为特定路径的中间件
var myMiddleware = function(req, res, next) {
console.log(req.route); // Just print the request route
next(); // Needed to invoke the next handler in the chain
}
app.get('/', myMiddleware, function(...) {}); //This will add myMiddleware to '/'
将函数myHandler添加为路由处理程序
var myHandler = function(req, res) {
console.log(req.route); // Just print the request route
send(200); // As the last step of the chain, send a response
}
app.get('/', myHandler); //This will bind myHandler to '/'