2 回答

TA貢獻1895條經驗 獲得超3個贊
正如您所提到的,您發出的請求是asynchronous您需要在異步函數中處理它,因為您不知道它何時解析。
router.get('/get/:keyword?', async (req,res) => {
let keyword = req.params.keyword;
let url;
if(keyword === "") {
url = 'some string';
} else {
url = 'another string';
}
try {
const res = await request(url, {json:true});
res.send(res)
} catch(err) {
console.log(err)
}
});
.then()或者,如果您不想使用async..await語法,則可以使用樣式來處理承諾
router.get('/get/:keyword?', (req,res) => {
let keyword = req.params.keyword;
let url;
if(keyword === ""){
url = 'some string';
}else{
url = 'another string';
}
request(url, {json:true}).then(res => {
// do something with the result
res.send(res.json())
}).then(err => console.log(err))
});

TA貢獻1946條經驗 獲得超4個贊
可能是因為你忘記關閉router.get末尾的')'功能?喜歡
router.get('/get/:keyword?', (req,res) => {
let keyword = req.params.keyword;
let url;
if(keyword == ""){
url = 'some string';
}else{
url = 'another string';
}
request(url, {json:true}, (error, response, body) => {
if(error){
res.send("Something went wrong");
}else{
res.send(body);
}
});
}); // <--- here you missed the ')'
添加回答
舉報