一尘不染

如何将变量从app.js传递到route / index.js?

node.js

我正在使用收缩路线https://npmjs.org/package/shrinkroute在nodejs中建立链接。我收到错误500
ReferenceError:收缩器未定义

如何将rinkeroute传递给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);                                                                         
}

阅读 329

收藏
2020-07-07

共1个答案

一尘不染

一种解决方案是shrinkr使用app.set以下方法存储在您的应用程序对象中:

// app.js
...
app.set('shrinkr', shrinkr);
...

在中routes/index.js,您可以通过req.appres.app对象访问它:

exports.showOrListUsers = function(req, res, next) {
  var shrinkr = req.app.get('shrinkr');
  ...
};
2020-07-07