【问题标题】:Issue with connecting to NodeJS server - site can’t be reached连接到 NodeJS 服务器的问题 - 无法访问站点
【发布时间】:2022-01-13 20:56:03
【问题描述】:

我是 NodeJS 新手,无法连接到服务器 http://localhost:6000/

server.js

const express = require('express');
const cors = require('cors');

const app = express();

app.use(express.urlencoded({extended: false}));
app.use(express.json);

app.use(cors());

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

const port = 6000;
const server = app.listen(port, listening);
function listening(){
    console.log("localhost port: " + port);
}

app.post('/postdata', (request, response) =>{
    console.log("POST request received!");
});

app.get("/getdata", (request, response) =>{

})

app.js

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('/postdata', {Works:456456});

[我的代码与终端输出][1] [1]:https://i.stack.imgur.com/bJJUv.png

[浏览器 - 无法连接][2] [2]:https://i.stack.imgur.com/K19NS.png

我做错了什么?

【问题讨论】:

  • 您的根路径似乎没有 GET 路由,如下所示:app.get('/', (req, res) => return 'Hello World')。添加这个可以解决您的问题并显示“Hello World”吗?
  • 我在 app.js 和 server.js 中都使用了 postdata,问题是缺少括号。

标签: node.js localhost


【解决方案1】:

问题似乎在于缺少括号:

app.use(express.json());

【讨论】:

    【解决方案2】:

    您正在尝试在没有基本 url 的情况下向服务器发送请求。 以这种方式替换它:

    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('http://localhost:6000/postdata', {Works:456456});
    

    【讨论】:

    • 谢谢,通过添加缺少的括号解决了问题,基本 URL 实际上工作正常 app.use(express.json());
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2014-07-23
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    相关资源
    最近更新 更多