使用Express4将数组从Nodejs中的app.js传递到routes/index.js
Pass array to routes/index.js from app.js in Nodejs with Express 4
如何将对象数组传递到路由中间件,以便根据传递的变量呈现视图。
目前,这是我正在使用的布局
app.js
var index = require('./routes/index');
ARRAY = [objects];
app.use('/', index);
routes/index.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next){
res.render('index', {data: ARRAY});
});
module.exports = router;
index.jade
extends layout
block content
each d in data
div!= d.method()
目前,我能产生的唯一有效的解决方案是使用全局变量,但这是不可持续或不可扩展的。我试过应用程序集("shrinker",shrinkr)和应用程序。locals,但无法将它们中的任何一个用于我的应用程序的布局。根据我对Express4框架的理解,我应该能够在app.js:中做这样的事情
var index = require('./routes/index')(array);
但是我无法得到正确的实现,而且网上也没有关于这方面的信息。
有多种方法可以解决这个问题,但如果您想将数组"烘焙"到中间件中(正如您的代码示例所建议的那样),您可以这样做:
var express = require('express');
module.exports = function(array) {
var router = express.Router();
return router.get('/', function(req, res, next){
res.render('index', {data: array});
});
}
然后你可以按照你的建议使用它:
var index = require('./routes/index')(array);
因为每次调用导出的函数都会创建新的中间件,所以可以将独立的数组烘焙到不同的中间件中:
var index1 = require('./routes/index')(["array 1"]);
var index2 = require('./routes/index')(["array 2"]);
根据您的需要,这可能对您有用,也可能不有用。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 使用Express4将数组从Nodejs中的app.js传递到routes/index.js
- 使用角度.js ngRepeat和Routes时如何处理内存泄漏
- 在 NodeJS 中.js xyz.client.routes 和 xyz.server.routes.js 有什么区别
- js-routes ASP.NET MVC alternative
- node js express routes /users?limit=20&offset=0
- 什么是'require('./app/routes.js')(app)'在这个节点服务器
- 在不传递参数的情况下从server.js获取路由到routes.js
- Js-routes在url中添加(::format)
- 将 locale 参数附加到 js-routes gem 在 rails 中生成的所有路径