gpt4 book ai didi

javascript - app.get 在 Node/Express 中返回未定义

转载 作者:搜寻专家 更新时间:2023-11-01 00:23:14 24 4
gpt4 key购买 nike

我在我的 app.js 中使用 express 我设置了这样的东西

var express = require('express');
var app = express();
app.set('myVar', 'hello');

然后在我的 Controller 中我想获取值。我愿意

var express = require('express');
var app = express();
console.log(app.get('myVar')) // undefineded

知道为什么吗?

最佳答案

你的 Controller 创建了一个新的 Express 实例。如果您希望能够共享变量,您需要将实例从 app.js 传递到您的 Controller :

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

编辑:从评论来看,问题不在于传递 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;

关于javascript - app.get 在 Node/Express 中返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34116613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com