POST请求失败-React应用



请看代码:我认为代码是合乎逻辑的,但前端"onFinish"函数有问题。我已经检查了api路由,看起来没问题。所以有点困惑

register frontend page (Route: users)
const router = require('express').Router()
const User = require('../models/usersModel')
const bcrypt = require('bcryptjs')
// Register new User
router.post('/register', async (req, res) => {
try {
const existingUser = await User.findOne({ email: req.body.email })
if (existingUser) {
return res.send({
message: 'User already on database',
success: false,
data: null,
})
}
const hashedPassword = await bcrypt.hash(req.body.password, 10)
req.body.password = hashedPassword
const newUser = new User(req.body)
await newUser.save()
res.send({
message: 'New user created successfully',
success: true,
data: null,
})
} catch (error) {
res.send({
message: error.message,
success: false,
data: null,
})
}
})
module.exports = router

userRoute(后端):

const router = require('express').Router()
const User = require('../models/usersModel')
const bcrypt = require('bcryptjs')
// Register new User
router.post('/register', async (req, res) => {
try {
const existingUser = await User.findOne({ email: req.body.email })
if (existingUser) {
return res.send({
message: 'User already on database',
success: false,
data: null,
})
}
const hashedPassword = await bcrypt.hash(req.body.password, 10)
req.body.password = hashedPassword
const newUser = new User(req.body)
await newUser.save()
res.send({
message: 'New user created successfully',
success: true,
data: null,
})
} catch (error) {
res.send({
message: error.message,
success: false,
data: null,
})
}
})
module.exports = router

userModel(后端):

const mongoose = require('mongoose')
const userSchema = new mongoose.Schema(
{
name: { type: String, required: true },
email: { type: String, required: true },
password: { type: String, required: true },
isAdmin: { type: Boolean, default: false },
},
{ timestamps: true }
)
module.exports = mongoose.model('users', userSchema)

server.js(后端)

const express = require('express')
const app = express()
require('dotenv').config()
const dbConfig = require('./config/dbConfig')
const port = process.env.PORT || 5000
app.use(express.json())
const usersRoute = require('./routes/usersRoute')
app.use('/api/users', usersRoute)
app.listen(port, () => console.log(`App listening on port ${port}`))

package.json

{
"name": "mernbus",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"dotenv": "^16.0.3",
"express": "^4.18.2",
"jsonwebtoken": "^9.0.0",
"mongoose": "^7.0.3",
"nodemailer": "^6.9.1",
"nodemon": "^2.0.22",
"react-process-env": "^0.1.0"
},
"proxy": "https://localhost:5000/"
}

问题:

在注册新用户时。我收到信息404未找到。请求URL: http://localhost:3000/api/users/register请求方法:POST状态码:404 Not Found

除了NO前端代码是共享的!

我看到默认端口是5000,如果你没有提供端口号3000作为一个环境变量到你的脚本运行这个服务器(问题中没有提到)。

如果是这种情况,那么您需要更改http://localhost:3000/api/users/registerhttp://localhost:5000/api/users/register