为什么我在提交 API 请求时收到“找不到对象”错误消息

问题描述 投票:0回答:1

正在开发一个项目,在该项目中我尝试使用 JavaScript 调用 API。这可能只是我忽略的一个愚蠢的错误,但有谁知道为什么我不断在控制台中收到“找不到对象”消息?

error in browser console

这是我的代码,我有一个index.js以及一个公共script.js。

这是我的index.js

// import Express library and activate it
import express from "express";
  

const app = express();
// publish our static frontend files
app.use('/',express.static('./public')) 


app.get("/api/ethereum", async (req, res) => {  


        let url = new URL('https://randomuser.me/api/')

    const response = await fetch(url.href)
    const data = await response.json()   


    res.send(data) 
}); 


// Start Express
app.listen(process.env.PORT, () => { 
    console.log(`Express is now Live.`) 
    console.log(`Public URL: `+ process.env.PUBLIC_URL)
}); 

这是我的 script.js

const getData = async () =>{
  console.log('Hello from script.js')
  const response = await fetch('/api/ethereum')
  const data = await response.json()
  console.log(data)
}

getData()

为了确保它不是实际的 API 不起作用,我使用不同的 API 进行了尝试,这个 随机用户 API 不需要密钥。然而同样的问题出现了...帮忙吗?

javascript api urlfetch
1个回答
0
投票

您在 script.js 中错过了“await fetch('http://localhost:3000/api/ethereum')”

演示 另存为

server.js

const express = require('express');

const app = express();

app.get("/api/ethereum", async (req, res) => {
    let url = new URL('https://freetestapi.com/api/v1/animals?search=Lion')
    const response = await fetch(url.href)
    const data = await response.json()
    res.send(data)
});

// Start the server
const port = 3000;
app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

另存为

script.js

const getData = async () => {
    console.log('Hello from script.js')
    const response = await fetch('http://localhost:3000/api/ethereum')
    const data = await response.json()
    console.log(data)
}

getData()

安装依赖项

npm install express

运行服务器

node server.js

运行客户端

node script.js

结果

© www.soinside.com 2019 - 2024. All rights reserved.