我正在使用收缩路由 https://npmjs.org/package/shrinkroute在nodejs中建立链接。我收到错误 500 ReferenceError:未定义收缩器
如何将 shrinkroute 传递给 routes/index.js?有没有更好的方法通过传递查询字符串 args 来创建 url?
//app.js
var app = express();
var shrinkr = shrinkroute( app, {
"user": {
path: "/user/:id?",
get: routes.showOrListUsers
}
});
//url method works in app.js
var url = shrinkr.url( "user", { id: 5, page:40, type:'a' } );
console.log(url);
app.use( shrinkr.middleware );
//routes/index.js
exports.showOrListUsers = function(req, res, next) {
console.log(req.params);
//shrinkr errors out in index.js
var url2 = shrinkr.url( "users", {name: "foo"});
console.log(url2);
}
最佳答案
一种解决方案是使用 app.set
将 shrinkr
存储在您的应用对象中。 :
// app.js
...
app.set('shrinkr', shrinkr);
...
在routes/index.js
中,可以通过req.app
或者res.app
对象来访问:
exports.showOrListUsers = function(req, res, next) {
var shrinkr = req.app.get('shrinkr');
...
};
关于node.js - 如何将变量从 app.js 传递给 routes/index.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20712712/