我之前问过这个问题,它与这个问题相关(如何从异步调用返回响应?),但它并没有解决我的问题
我是node.js的新手,我遇到了一些我无法处理的错误,或者找不到任何我理解的帮助。我使用express generator初始化应用程序。我试图通过一个api调用将我得到的对象发送到前端。我编写了一个类“StockClass.js”,其中包含一个函数makeApiCall(),该函数进行调用并返回对象。但当我在路由器中调用该函数时,我得到了“未定义”。这是密码
//==== StockClass.js ===
const yahooFinance = require("yahoo-finance");
class stockClass {
static makeApiCall(symbol) {
yahooFinance.quote(
{
symbols: [symbol],
modules: ["price", "summaryDetail"],
},
function (err, quotes) {
if (err) { console.log(err) }
console.log(quotes)
return quotes;
}
);
}
}
module.exports = stockClass;
//=====index.js======
const StockClass = require("../handlers/StockClass");
router.get("/new", function (req, res) {
let quotes = StockClass.makeApiCall("AAPL");
console.log(quotes);
res.render('path', { quotes });
});
StockClass.js中的console.log正确记录对象(引号),而index.js中的console.log记录“未定义”。
下面的链接解释了yahoo finance api调用。https://www.npmjs.com/package/yahoo-finance
==========================================================================
我还尝试使用一个中间件并像这样将数据附加到响应对象
//==========middleware=========
const yahooFinance = require("yahoo-finance");
module.exports = {
makeApiCall: (symbol) => {
return function (req, res, next) {
yahooFinance.quote(
{
symbols: [symbol],
modules: ["price", "summaryDetail"],
},
function (err, quotes) {
if (err) { console.log(err) }
res.stockObj = quotes;
console.log(res.stockObj);
}
);
next();
}
}
}
//======= index.js =========
const handler = require("./handlers/stockUtils");
router.get("/new", handler.makeApiCall("AAPL"), function (req, res) {
let quotes = res.stockObj;
console.log(quotes);
res.render('path', { quotes });
});
结果是一样的。中间件函数中的console.log记录正确的对象,但index.js中的console.log记录未定义的对象
我试图从React调用一个API,但它一直以未定义的方式返回。这是我的代码: 当我运行它时,console.log()返回未定义的,这意味着我得到的错误。我不太确定如何解决这个问题,所以任何帮助都将不胜感激!谢谢。 编辑:这是API在您转到以下链接时返回的内容:
我正在尝试为discord bot执行命令,它从MySQL表中输出整数。 我尝试使用async/await、Promissions和回调来实现这一点,但结果总是一样的。在这里,我用promise再次尝试,因为在过去它不知何故起了作用。现在不会了。 下面是返回promise的函数: 下面的代码将结果赋值给Access Level变量: Catch函数捕获表示“TypeError:无法读取未定义的属性
我正在尝试发送到客户端每当一个新的连接发出。 我的服务器端javascripts是: 和要处理的客户端js: 输出未定义(在未定义的情况下) 哪里不对劲了?
我实现了一个函数,希望返回保存在某个url下的对象。在下面的代码中,第一个“console.log(result);”从firebase位置返回正确的对象。第二个返回未定义。有人能解释一下为什么以及如何修复它吗?
问题内容: 基本上,我需要能够做到这一点: 我正在寻找一个等于 或{get}的“全局”对象,以便为所有未定义的属性获取器返回一个空字符串(请注意,这与的属性不同)。 问题答案: 您可以创建一个a,以在访问未定义的属性时返回空字符串。 : 正如问题作者David Murdoch指出的那样,如果您使用的是节点v0.6.18(撰写本文时是最新的稳定版本),则在运行脚本时必须传递该选项: 请注意,此解决方