在问这个问题之前,yes I have read the incumbent question here这对我来说仍然没有意义,因此当另一个问题没有给我一个我可以理解的答案时,将其标记为重复项并没有帮助。
- 我想要一个函数返回一个值(来自数据库的 JSON 数据)。
- 每当从另一个文件调用该函数时,我希望将值返回到调用页面。
- 就是这样。
这是我的 .js
文件中的函数:
async function rsOffersAll() {
await global.MYDB.connect(); // global variable already setup using mssql module in app.js
try {
global.MYDB.request(global.MYDB).query('SELECT Top(10) * FROM [Broadcast].[Offer]').then(function(result) {
console.dir(result); // shows correct data
return JSON.stringify(result); // how do I return this value so that any other file calling rsOffersAll gets THIS result?
});
} catch (error) {
}
}
module.exports.rsOffersAll = rsOffersAll;
在我的调用 .js
文件中,我有以下内容:
const Offer = require('../models/broadcasts/offer');
(async function rsOffersAll() {
let rsOffersAll = await Offer.rsOffersAll();
console.log(rsOffersAll); // this should log the JSON data in the console but I get "undefined" instead
})();
如何编辑上面的代码,使数据返回到调用页面?我知道由于某种原因没有返回任何内容,但我不知道为什么(链接到另一个提出类似问题的问题不会有帮助,相信我)。有人可以用我上面的代码解释一下吗?
最佳答案
您没有从 rsOffersAll 返回任何内容。 then()
回调返回了一些东西,但仅此而已。试试这个,修复它:
async function rsOffersAll() {
await global.MYDB.connect(); // global variable already setup using mssql module in app.js
try {
return global.MYDB.request(global.MYDB).query('SELECT Top(10) * FROM [Broadcast].[Offer]').then(function (result) {
console.dir(result); // shows correct data
return JSON.stringify(result); // how do I return this value so that any other file calling rsOffersAll gets THIS result?
});
} catch (error) {}
}
关于javascript - 为什么我无法从导出函数获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58901104/