gpt4 book ai didi

node.js - 函数返回值在nodejs中未定义

转载 作者:可可西里 更新时间:2023-11-01 09:12:33 35 4
gpt4 key购买 nike

我是第一次从事 NodeJs 项目。现在我坚持使用通过 JS 返回值并获取要在 express 中使用的值的函数。

var dbitems = "before fn";
function refreshData(callback) {
db.open(function (err, db) {
if (!err) {
db.collection('emp').find().toArray(function (err, items) {
dbitems = items;
callback(JSON.stringify(items));
});
}
else {
console.log("Could not be connnected" + err);
dbitems = {"value":"not found"};
}
});

}
}


refreshData(function (id) { console.log(id); });

此函数完美地从 refreshData 中检索值并写入控制台。但我需要的是使用检索到的值通过“returnedData”从该函数发送到 express html 文件

exports.index = function (req, res) {
var valrs = refreshData(function (id) {
console.log(JSON.parse(id)); ---this again writes data perfectly in the console
});
console.log(valrs); -------------------but again resulting in undefined
res.render('index', { title: 'Express test', returnedData: valrs });
};

如有任何帮助,我们将不胜感激。

感谢和问候,幸运的。

最佳答案

您需要在数据库请求完成后呈现它。因此需要从回调中调用它。

exports.index = function (req, res) {
refreshData(function (id) {
res.render('index', { title: 'Express test', returnedData: JSON.parse(id) });
});
};

它是异步的,所以你不能只是按顺序排列值,需要通过回调。

关于node.js - 函数返回值在nodejs中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12362737/

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