node.js - 将变量传递给expressjs 3条路线

标签 node.js express

我有一个 ExpressJS 3 应用程序,并将我的路线放在单独的文件中。我想在我的 app.js 中声明一些可在路由文件中使用的配置 - 在路由定义本身之外。

在我的 app.js 中,我想做一些事情,例如:

app.set('path_to_models', '/path/models/');

然后在我的routes/index.js 文件中我希望能够执行此操作:

var Product = require(app.get('path_to_models') + 'product');

exports.list = function(req, res){
  return Product.find(function (err, products) {
    if (!err) {
       res.render('product/manage', { products: products });
    } else {
       res.render('5xx');
    }
  });
};

我看过一些与此相关的帖子,但没有一个真正解决了我正在寻找的内容。我知道我可以将路由包装在一个函数中,但希望有一种替代方法可以使我的代码保持原样(如果可能的话)。

最佳答案

我只是创建一个单独的 config 模块来保存我的配置,并且在任何需要配置信息的模块中,我只需要像平常一样需要它。当更松散耦合的方法可以正常工作时,为什么还要将 Express 拖入其中呢?

config.js

exports.pathToModels = "/path/to/models";

routes.js

var config = require("./config");
console.log(config.pathToModels);

关于node.js - 将变量传递给expressjs 3条路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030521/

相关文章:

node.js - Nodejs 中的自定义 REPL

javascript - 在app.js和html之间共享数据

node.js - 如何将Heroku API(服务器/node-express)连接到自定义域gh-pages

javascript - Node.js:如何处理新 URL 解析器弃用警告?

mysql - 如何检测node js和mysql中的ctrl+c?

javascript - 如何在 JavaScript 中正确解码 Base64 字符串

javascript - 在 Express-Sequelize MySql 中创建 2 个模型之间的关联

node.js - 使用 cookie 的 iFraming Kibana 仪表板时出现 TOO_MANY_REDIRECTS 错误

node.js - 带有 Mongoose 的快速验证器

node.js - 如何测试 NodeJs CLI javascript