首页 > 解决方案 > 谁能告诉我这个简单的代码有什么问题?

问题描述

(服务器端)

const express = require('express');

//instance of an app
const app = express();
//middleware
const bodyParser = require('body-parser');
app.use(express.urlencoded({extended: false}));
app.use(express.json());
//core package to let the server and client side talk without any security boundaries

const cors = require('cors');
app.use(cors());

app.use(express.static('node'));

//setting up server

const port = 8000;
const server = app.listen(port, listenning);
function listenning(){
    console.log(`running on local server: ${port}`);
};

//GET route

const data = [];

app.post('/addMovie', addMovie)

function addMovie(req, res){
    data.push(req.body);
    console.log(data);
};

(客户端)

const postData = async(URL='', data= {})=>{
    console.log(data);

const response = await fetch(url, {
    method: 'post',
    credentials: 'same-origin',

    headers: {'Content-Type': 'application/json'},
    body: JSON.stringify(data),
});

try{
    const newData = await response.json();
    console.log(newData);
    return newData
}catch(error){

    console.log("error", error);

}
}

postData('/addMovie', {movie: 'Dark Knight', score: 5});

我正在通过 node.js 和 express 发出一个简单的 POST 请求,但找不到问题所在,这是代码,当我加载页面时显示“无法获取”并给出错误“404(未找到)”谁能帮忙??

标签: javascriptnode.jsexpresspostserverside-javascript

解决方案


错误404意味着 URL 错误。

'/addMovie'作为 URL 传递,并将其用于获取。

您可能需要更新此内容:

const response = await fetch(url, {

对此

const response = await fetch('http://localhost:8000' + url, {

通过添加'http://localhost:8000'作为您的网址的前缀。


推荐阅读