首页 > 解决方案 > GET http://localhost:5000/error 404 (Not Found)||无法连接到 API

问题描述

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

"{"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}'));

标签: javascriptnode.jsapiexpressweb-scraping

解决方案


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

下线长

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

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

推荐阅读