无法连接到 NodeJS Express 服务器

Posted

技术标签:

【中文标题】无法连接到 NodeJS Express 服务器【英文标题】:Can't connect to NodeJS Express Server 【发布时间】:2022-01-12 23:29:33 【问题描述】:

我无法连接到我的 Express 服务器。我正在尝试使用 Axios 从我的前端进行连接,但它从未到达端点。此外,当我尝试直接从浏览器连接时,它只是旋转。当我启动服务器时,我确实看到了来自监听功能的控制台日志消息,所以它似乎正在运行。但是 Axios.post 永远不会到达他的 /login 路由。

这是我在服务器上的 index.js

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

app.use(cors);
app.use(express.json());

const db = mysql.createPool(
    host: 'localhost',
    user: 'root',
    password: 'root',
    databaseName: 'ncaa'
);

app.post("/login", (req, res) => 
    const userName = req.body.userName;
    const password = req.body.password;

    db.query("SELECT * from user where username = ? and password = ?", [userName, password], (err, result) => 
        if(err)
            res.send(err: err);
        
        
        if (result)
            res.send(result);
        
        else 
            res.send(message: "Username or password is incorrect");
        
    );
);

app.listen(3001, () => 
    console.log('App running on 3001');
);

这是我在客户端的 app.js

import React from 'react';
import  useState  from 'react';
import Axios from 'axios';
import './App.css';

function App() 
  const [userName, setUserName] = useState("");
  const [password, setPassword] = useState("");

  const authenticateLogin = () => 
    Axios.post("http://localhost:3001/login", 
      userName: userName,
      password: password 
    ).then((response) => 
      console.log(response);
    );
    
  

  return (
    <div className="App">
      <div className="login">
        <h1>Login</h1>
        <label>Username:</label>
        <input type="text" onChange=(event) =>  setUserName(event.target.value) />
        <label>Password:</label>
        <input type="password" onChange=(event) =>  setPassword(event.target.value) />
        <button onClick = authenticateLogin>Login</button>
      </div>
    </div>
  );


export default App;

【问题讨论】:

【参考方案1】:
const express = require('express');
const app = express();
const cors = require('cors');

app.use(cors()); // cors is a function, you have to call that function
app.use(express.json());

【讨论】:

以上是关于无法连接到 NodeJS Express 服务器的主要内容,如果未能解决你的问题,请参考以下文章

连接到 websockets NodeJS Express 服务器时出错

无法将 Express.js 服务器连接到 Angular 前端

无法从 Express 连接到远程 Redis

无法连接到 Web 服务器“IIS Express”

Visual Studio 2017“无法连接到 Web 服务器 'IIS Express'”

NodeJS:在哪里连接到代码中的数据库?