我有一个包含 auth.js 文件的路由文件夹,我在其中编写了用于注册用户的 API 发布请求。
服务器/路由/auth.js
const express = require("express");
const router = express.Router();
const User = require("../models/User");
const bcrypt = require("bcrypt");
//Register User
router.post("/register", async(req,res)=>{
try {
//Generate hashed password
const salt = await bcrypt.genSalt(10);
const hashedPassword = await bcrypt.hash(req.body.password, salt);
//Create new user
const newUser = new User({
firstName: req.body.firstName,
lastName: req.body.lastName,
email: req.body.email,
password: hashedPassword,
phoneNumber: req.body.phoneNumber,
dateOfBirth: req.body.dateOfBirth,
location: req.body.location,
});
//Save user to DB and return response
const user = await newUser.save();
res.status(200).json(user);
} catch (err) {
res.status(500).json(err);
}
});
module.exports = router;
服务器/index.js
// import modules
const express = require('express');
const app = express();
const mongoose = require('mongoose');
const morgan = require('morgan');
const helmet = require("helmet");
require("dotenv").config();
const authRoute = require('./routes/auth');
// db
mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
}).then(() => console.log("DB Connected")).catch(err => console.log("DB Connection Error", err));
// middleware
app.use(express.json());
app.use(helmet());
app.use(morgan("common"));
// routes
app.use("/server/auth" , authRoute);
// port
const port = process.env.PORT || 8080;
// listener
const server = app.listen(port, () =>
console.log(`Server is running on port ${port}`)
);
据此,我认为我需要制作的正确 API URL 是: http://localhost:8080/server/auth/register
拥有以下身材:
{
"firstName": "Jenny",
"lastName": "Doe",
"email": "[email protected]",
"password": "jenny123",
"phoneNumber": "2261234567",
"dateOfBirth": "11/11/1999",
"location": "Toronto, Ontario"
}
这些参数是我的用户模式中需要的参数。
进行 API 调用时,我在 Postman 中收到以下错误:
我到处找答案,我似乎无法弄清楚它是什么。也许我缺少某些依赖项或其他东西。 任何帮助表示赞赏!