在 NodeJS 中使用 Axios 尝试 return 数据时获取 [Object Promise]
Getting [Object Promise] while trying to return data using Axios in NodeJS
我正在尝试编写代码来显示比特币的美元价值,它在控制台日志中运行良好,但是当我尝试 return 它到我的 app.post 时,它只是 returns [Object Promise] 在屏幕上,我在不使用 Async 和 Await 的情况下尝试了相同的操作,但我得到了同样的错误,但在控制台中它显示 Promise Pending
const express = require("express");
const app = express();
const { res } = require("express");
const axios=require("axios");
app.use(express.json());
app.use(express.urlencoded({extended:true}));
app.get("/",function(req,res){
res.sendFile(__dirname+"/index.html");
})
async function getUser(fiat) {
try {
const response = await axios.get("https://api.coindesk.com/v1/bpi/currentprice/"+fiat+".json")
let data = response.data.bpi.USD.rate;
console.log(data);
return data;
}
catch (error) {
console.error(error);
}
}
app.post("/",function(req,res){
var fiat = req.body.fiat;
let answer=getUser(fiat);
res.write(" "+answer);
res.send();
res.end();
});
app.listen(3000,()=>{
console.log("Server Started");
})
您需要在调用 getUser 之前等待并使此函数异步
let answer=await getUser(fiat);
复制粘贴这个
app.post("/",async function(req,res){ var fiat = req.body.fiat; let answer=await getUser(fiat); res.write(" "+answer); res.send(); res.end(); });
我正在尝试编写代码来显示比特币的美元价值,它在控制台日志中运行良好,但是当我尝试 return 它到我的 app.post 时,它只是 returns [Object Promise] 在屏幕上,我在不使用 Async 和 Await 的情况下尝试了相同的操作,但我得到了同样的错误,但在控制台中它显示 Promise Pending
const express = require("express");
const app = express();
const { res } = require("express");
const axios=require("axios");
app.use(express.json());
app.use(express.urlencoded({extended:true}));
app.get("/",function(req,res){
res.sendFile(__dirname+"/index.html");
})
async function getUser(fiat) {
try {
const response = await axios.get("https://api.coindesk.com/v1/bpi/currentprice/"+fiat+".json")
let data = response.data.bpi.USD.rate;
console.log(data);
return data;
}
catch (error) {
console.error(error);
}
}
app.post("/",function(req,res){
var fiat = req.body.fiat;
let answer=getUser(fiat);
res.write(" "+answer);
res.send();
res.end();
});
app.listen(3000,()=>{
console.log("Server Started");
})
您需要在调用 getUser 之前等待并使此函数异步
let answer=await getUser(fiat);
复制粘贴这个
app.post("/",async function(req,res){ var fiat = req.body.fiat; let answer=await getUser(fiat); res.write(" "+answer); res.send(); res.end(); });