【问题标题】:GET http://localhost:5000/error 404 (Not Found)||Unable to connect to APIGET http://localhost:5000/error 404 (Not Found)||无法连接到 API
【发布时间】:2021-11-20 19:43:54
【问题描述】:

`我正在尝试使用 scraperApi 使用他们的 productId 和 express.js 进行 API 调用,从亚马逊获取有关产品的信息 运行时提示错误:

"{"name":"RequestError","message":"错误:无效的 URI "$%7BbaseUrl%7D&url=https://www.amazon.com/dp/$%7BproductId%7D"","原因":{},"error":{},"options":{"uri":"${baseUrl}&url=https://www.amazon.com/dp/${productId}","simple" :true,"resolveWithFullResponse":false,"transform2xxOnly":false}}"

而不是产品数据 在检查时,它显示以下错误,

未检查的 runtime.lastError:消息端口在收到响应之前关闭。

代码如下:

const express = require('express');
 const request = require('request-promise');

 const app = express();
 const PORT= process.env.PORT||5000;

 const apiKey ='[sensitive information]';
 const baseUrl ='http://api.scraperapi.com?api_key=${apiKey}&autoparse=true';


 app.use(express.json());

 app.get('/',(req,res ) =>{
res.send('Welcome to Dentel API project');
 });

 //GET Product details
 app.get('/products/:productId',async(req,res)=>{
     const{productId}= req.params;
     try{
         const response = await request('${baseUrl}&url=https://www.amazon.com/dp/${productId}');
         res.json(response);
     }catch(error){
        res.json(error);
     }
 });

 app.listen(PORT,()=>console.log('Server running on port ${PORT}'));

【问题讨论】:

    标签: javascript node.js api express web-scraping


    【解决方案1】:

    您应该使用 反引号,但使用单引号。

    更改下一行

    const response = await request('${baseUrl}&url=https://www.amazon.com/dp/${productId}');
    

    const response = await request(`${baseUrl}&url=https://www.amazon.com/dp/${productId}`);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      相关资源
      最近更新 更多