首页 > 解决方案 > 无法发布到数据库,验证错误(如果根据需要设置)或请求正文中的 JSON 未发布

问题描述

这是我的架构 -

const UserSchema = new Schema({
  name: {
    type: String,
    maxlength: 50,
    required: true
  },
  email: {
    type: String,
    maxlength: 50,
    required: true
  },
  password: {
    type: String,
    minlength: 8,
    maxlength: 50,
    required: true
  },
  phone: {
    type: Number,
    minlength: 8,
    maxlength: 50,
    required: true
  },
});

module.exports = {
    UserSchema: mongoose.model("User", UserSchema)
}

如果我要删除“必需”,那么无论我如何尝试发布姓名、电子邮件等,它只会在数据库中保存一条空记录。如果它按要求设置,它只会导致验证错误。我也在使用这些,如果有人要建议这个 -

app.use(express.urlencoded());

app.use(express.json());

这是路由器 -

    const express = require("express")
const router = express.Router()
const {insertUser} = require("./model/user/User.model")

router.all("/", (req,res,next) => {
  /*  res.json({message: "return user info"}) */

  next();
});

router.post("/", async (req,res) => {

  try {
    const result = await insertUser(req.body);
    console.log(result);

  }catch (error) {
    console.log(error)
    res.json({status: "error", message: error.message})
  }
  
  console.log(result)
    res.json({message: "new user created", result})
}); 


module.exports = router;

这是 insertUser 函数 -

    const {UserSchema} = require("./User.schema")

const insertUser = (userObj) => {
    return new Promise((resolve,reject) =>{
    UserSchema(userObj)
    .save()
    .then((data) => console.log(data))
    .catch((error) => console.log(error))

    })
}

module.exports = { insertUser,};

任何帮助,将不胜感激!我什么都试过了,真的看不出有什么问题。

标签: node.jsmongodbexpresspost

解决方案


推荐阅读