【发布时间】:2022-01-06 01:30:07
【问题描述】:
用户架构(user.js)
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
username : {type :String , required:true ,unique:true},
email :{type : String , required:true , unique:true},
password:{type:String , required:true} ,
isAdmin :{
type : Boolean,
default:false,
},
},
{timestamps:true}
);
module.exports = mongoose.model('userData' , userSchema);
auth.js(我尝试实现身份验证的地方)
const User = require("../Database/User"); //importing user schema
const router = require('express').Router();
// Register
router.post("/register", async (req, res) => {
const newUser = new User({
username: req.body.username,
email: req.body.email,
password: req.body.password,
});
try {
const saveUser = await newUser.save();
res.status(201).json(saveUser);
} catch (err) {
res.status(500).json(err);
}
});
module.exports = router;
index.js(入口点)
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const userRoute = require('./routes/user');
const authRoute = require('./routes/auth'); // authentication
dotenv.config();
mongoose
.connect(process.env.Mongoose_url)
.then(() => console.log("connection to database is successful"))
.catch((err) => {
console.log(err);
});
app.use('/api/user' , userRoute);
app.use('/api/auth' , authRoute);
app.listen(2000, () => {
console.log("server is running on port ");
});
现在,当我尝试使用邮递员发布数据时,它显示如下:
服务器正在端口上运行
与数据库的连接成功
(node:4320) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'username' of undefined
在 E:\GillyWeedBackend\routes\auth.js:9:24
在 Layer.handle [as handle_request] (E:\GillyWeedBackend\node_modules\express\lib\router\layer.js:95:5)
在下一个 (E:\GillyWeedBackend\node_modules\express\lib\router\route.js:137:13)
在 Route.dispatch (E:\GillyWeedBackend\node_modules\express\lib\router\route.js:112:3)
在 Layer.handle [as handle_request] (E:\GillyWeedBackend\node_modules\express\lib\router\layer.js:95:5)
在 E:\GillyWeedBackend\node_modules\express\lib\router\index.js:281:22
在 Function.process_params (E:\GillyWeedBackend\node_modules\express\lib\router\index.js:341:12)
在下一个 (E:\GillyWeedBackend\node_modules\express\lib\router\index.js:275:10)
在 Function.handle (E:\GillyWeedBackend\node_modules\express\lib\router\index.js:174:3)
在路由器 (E:\GillyWeedBackend\node_modules\express\lib\router\index.js:47:12)
为什么会报这个错误
【问题讨论】:
标签: node.js authentication postman node-modules