当我尝试注册用户时,它说:注册.jsx:49 POST http://localhost:5173/api/v1/user/register 404(Not Found)and axios error comes which is:AxiosError {message:'请求失败,状态代码为404',名称:'AxiosError',代码:'ERR_BAD_REQUEST',配置:{...},请求:XMLHttpRequest,...}
这是我的userRoutes.js代码:
const express = require('express')
const { loginController, registerController } = require('../controllers/userCtrl')
//router object
const router = express.Router()
//routes
//LOGIN || POST
router.post('/login', loginController)
//REGISTER ||POST
router.post('/register', registerController)
module.exports = router
字符串
这是我的userModel.js代码:
const mongoose = require('mongoose')
const userSchema = mongoose.Schema({
name: {
type: String,
required: [true, 'Name is required']
},
email: {
type: String,
required: [true, 'Email is required']
},
password: {
type: String,
required: [true, 'Password is required']
},
aadharNumber: {
type: Number,
required: [true, 'Aadhar number is required']
}
})
const userModel = mongoose.model('users', userSchema)
module.exports = userModel
型
这是我的userController.js代码:
//import model
const userModel = require('../models/userModels')
const bcrypt = require('bcryptjs')
//register callback
const registerController = async (req, res) => {
try {
const existingUser = await userModel.findOne({ email: req.body.email })
if (existingUser) {
return res.status(200).send({
message: 'User already exists', success: false
})
}
const password = req.body.password
const salt = await bcrypt.genSalt(10)
const hashedPassword = await bcrypt.hash(password, salt)
req.body.password = hashedPassword
const newUser = new userModel(req.body)
await newUser.save()
res.status(201).send({
message: 'Registered sccessfully', success: true
})
} catch (error) {
console.log(error)
res.status(500).send({
success: false,
message: `Register controller: ${error.message}`
})
}
}
//login callback
const loginController = () => {
}
module.exports = { loginController, registerController }
型
这是我的server.js代码:
const express = require("express");
const morgan = require("morgan");
const dotenv = require("dotenv");
const connnectDB = require("./config/db");
// dotenv config
dotenv.config();
//mongodb connection
connnectDB();
//rest object
const app = express();
// middlewares
app.use(express.json());
app.use(morgan("dev"));
// routes
app.use('/api/v1/user', require('./routes/userRoutes'))
//port
const port = process.env.PORT || 8070;
//listen port
app.listen(port, () => {
console.log(
`Server running in ${process.env.NODE_MODE} mode on port ${process.env.PORT}`
);
});
型
这是我的根包.json:
{
"name": "babysitease",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js",
"server": "nodemon server.js",
"client": "cd client && npm run dev",
"both": "concurrently \"npm run server\" \"npm run client\""
},
"keywords": [],
"author": "mustafa",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"concurrently": "^8.2.0",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"jsonwebtoken": "^9.0.1",
"mongoose": "^7.4.0",
"morgan": "^1.10.0",
"nodemon": "^3.0.1"
}
}
型
这是我的frontend包。json:
{
"name": "client",
"proxy": "http://localhost:8070",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
"dependencies": {
"antd": "^5.7.3",
"axios": "^1.4.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.14.2",
"react-toastify": "^9.1.3"
},
"devDependencies": {
"@types/react": "^18.2.15",
"@types/react-dom": "^18.2.7",
"@vitejs/plugin-react": "^4.0.3",
"autoprefixer": "^10.4.14",
"eslint": "^8.45.0",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.3",
"postcss": "^8.4.27",
"tailwindcss": "^3.3.3",
"vite": "^4.4.5"
}
}
型
这是文件夹结构:folder structure客户端文件夹用于前端
任何帮助将不胜感激!!
1条答案
按热度按时间qnakjoqk1#
字符串
在console.log()中更改端口,看看它是否在该端口上。
我刚刚测试了你的路由,一切似乎都很好。如果只是404,可能是错误的端口。
您可以使用一个名为Postman的工具来检查这一点。