node.js - 如何将变量从 app.js 传递给 routes/index.js?

标签 node.js express shrinkroute

我正在使用收缩路由 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.setshr​​inkr 存储在您的应用对象中。 :

// 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/

相关文章:

javascript - Express.js 和 multer : how to know when the files are all uploaded?

node.js - 哪些错误将由express error 处理,哪些由uncaughtException 错误处理程序处理?

node.js - 如何在 jade 模板 ahrefs 中嵌入收缩路由 url() 调用?

javascript - 如何从 Node js 与 shell 脚本通信

javascript - 如何监控 Neo4j 的连接问题?

node.js - 如何使用 node.js net.Socket 启动 PostgreSQL 消息流协议(protocol)

node.js - 如何在我的 react 应用程序中运行弹出?

angularjs - 在 Express.js 中刷新 JWT