亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Node.js GET 請求

Node.js GET 請求

藍山帝景 2023-07-14 09:41:37
我正在制作一個 API,在我的 GET 方法之一中,我需要向另一個 API 發出 GET 請求。為了首先做到這一點,我需要根據路由中的參數選擇 url。我的代碼是這樣的:const express = require('express');const request = require('request');const router = express.Router();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);            }        });});但是,我收到一個錯誤,就像“if”塊被忽略一樣。我讀了一些網站,我相信這是因為請求函數是異步的,但我不知道如何解決它。任何幫助表示贊賞。提前致謝!
查看完整描述

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))

});


查看完整回答
反對 回復 2023-07-14
?
絕地無雙

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 ')'


查看完整回答
反對 回復 2023-07-14
  • 2 回答
  • 0 關注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號