【问题标题】:UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'username' of undefinedUnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“用户名”
【发布时间】: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


    【解决方案1】:

    我忘记在主文件(入口点)中添加app.use(express.json());,因为我们正在获取 JSON 格式的数据,所以有必要添加它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 2021-04-18
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 2021-05-18
      相关资源
      最近更新 更多