本文介绍了如何将变量从app.js传递给routes / index.js?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用shrinkroute 来链接的NodeJS。我得到错误500 ReferenceError:shrinkr没有定义

I'm using shrinkroute https://npmjs.org/package/shrinkroute to make links in nodejs. I get error 500 ReferenceError: shrinkr is not defined

如何将shrinkroute传递给routes / index.js?有没有更好的方法通过传递查询字符串args来创建url?

How to pass shrinkroute to routes/index.js? Is there a better way to create url by passing query string args?

//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);
}


推荐答案

一个解决方案是存储您的应用对象中的 shrinkr 使用:

One solution would be to store shrinkr in your app object using app.set:

// 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');
  ...
};

这篇关于如何将变量从app.js传递给routes / index.js?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 11:15