【发布时间】:2021-08-09 23:26:52
【问题描述】:
我编写node.js代码并尝试通过Postman(post)将数据插入mongodb数据库但数据没有保存,只有_id和_v插入到自动输入的文档中。我认为问题出在正文解析器中,它已被弃用,但我尝试了一些选项,但它仍然被弃用。 (我不确定bodyparser的问题)。数据是通过邮递员(post)插入的。这是相关的node.js代码:
const express = require ('express');
const mongoose = require ('mongoose');
const router = require ('./routes/api');
const bodyParser = require("body-parser");
const dotenv = require('dotenv');
dotenv.config();
const app = express();
.
.
.
app.use(bodyParser.json());//this bodyParser is deprecated
app.use('/',router);
型号:
const mongoose = require ('mongoose');
const userSchema = mongoose.Schema({
name:{
type:String,
require
},
password:{
type:String,
minlength:8,
require
}
})
module.exports = mongoose.model('User', userSchema);
控制器:
const User = require ('../models/User');
const newUser = async (req,res)=>{
let user1 = new User(
req.body);
console.log(`${user1} added`);
try{
await user1.save();
res.status(200).json({newUser:user1});
}
catch(error){
res.send(`cant save new user: ${error.message}`)
}
}
module.exports = { newUser }
这是我在 Postman 中写的:
{
"name":"james",
"password":"12345678"
}
这是回应:
{
"newUser": {
"_id": "60a68f815019f31cfc098572",
"__v": 0
}
}
我很乐意得到帮助!
【问题讨论】:
-
您能添加您的数据库代码吗?另外我认为它与bodyParser没有任何关系。由于已弃用,您可以改用
app.use(express.json())。 -
这是“用户”的架构:const mongoose = require ('mongoose'); const userSchema = mongoose.Schema({ name:{ type:String, require }, password:{ type:String, minlength:8, require } }) module.exports = mongoose.model('User', userSchema);跨度>
-
请在问题本身中添加这些型号和控制器代码。
-
是的,我明白了,但是您必须在将记录保存在数据库中的位置向我们展示完整的代码。而且你从cmets中删除后没有在问题中添加控制器代码?
-
现在可以了!!!谢谢,谢谢!!!!
标签: node.js mongodb express visual-studio-code