app.get在Node/Express中返回undefined
app.get returned undefined in Node/Express
我在我的app.js中使用express,我设置了类似于的东西
var express = require('express');
var app = express();
app.set('myVar', 'hello');
然后在我的控制器中,我想得到这个值。我做
var express = require('express');
var app = express();
console.log(app.get('myVar')) // undefineded
知道为什么吗?
您的控制器会创建一个全新的Express实例。如果您希望能够共享变量,您需要将实例从app.js
传递给您的控制器:
// app.js
var express = require('express');
var app = express();
app.set('myVar', 'hello');
require('./controller')(app);
// controller.js
module.exports = function(app) {
console.log(app.get('myVar'));
};
EDIT:根据评论判断,问题不在于传递app
,而在于将应用程序的各个部分移动到不同的模块。启用的常见设置如下所示
// app.js
var express = require('express');
var app = express();
app.set('myVar', 'hello');
app.use('/api', require('./controller/auth'));
// controller/auth.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
console.log(req.app.get('myVar'));
return res.send('hello world');
});
module.exports = router;
在您的示例中,您正在实例化第二个app
,然后尝试从中get
值。您需要从完全相同的对象get
:
var express = require('express');
var app = express();
app.set('foo', 'bar');
app.get('foo');
如果您是express新手,可以使用cli生成器构建一个应用程序,该应用程序向您展示了如何在整个应用程序中使用同一express实例的合理模式。
相关文章:
- RequireJS向模块传递配置总是返回undefined
- JSON数组数据返回Undefined
- JavaScript”;.方法“;返回undefined
- jQuery可以't获取data-*属性值,返回undefined
- Javascript/JSON警报返回Undefined
- Javascript:firstChild对象返回undefined
- 当尝试使用ajax读取文件时,变量返回undefined
- 如何避免JSON.stringify在特殊情况下返回undefined,从而为JSON.parse创建字符串失败
- 使用谷歌地图:一个返回undefined的自定义javascript函数
- Json在nodeJs和AngularJs中返回undefined
- 为什么像 Firefox 和 Chrome 控制台中的 '}{' 这样的结构会返回 'undefined'?
- 使用 HTML 和 JavaScript 从表单访问值时返回 undefined
- 在 CoffeeScript 中,当尝试调用类中的方法 (@_methodName) 时,它会返回 undefined
- 解析承诺'当'返回undefined(Javascript)
- NodeJS:zlib.gunzip(body)错误地返回“undefined”
- window.open在chrome扩展中返回undefined
- jQuery.pr()返回undefined,而.attr()对数据-*的作用与预期一样
- 正在读取嵌套json,jquery返回undefined
- IIFE是否总是返回undefined
- $timeout包装$http.post返回undefined而不是promise