【发布时间】:2023-03-19 16:42:01
【问题描述】:
我是 nodejs、mongoose、express 的新手,我正在尝试创建 Rest API。 当我在邮递员中点击 post 方法时,我只得到 id
下面是我的代码:
- 这是我创建服务器并在此处创建端点的服务器文件,请查看我的代码,如果我在任何地方出错
const bodyParser = require('body-parser');
//const userRouter = require('./src/routes/user');
const User = require('./src/models/user');
require('./src/db/db');
//require('./src/controler/user.controler');
const app = express();
const PORT = process.env.port || 4000
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
//app.post('/app', userRouter);
app.post('/user', (req , res)=> {
const newUser = new User(req.body);
newUser.save().then((result)=>{
console.log(result)
}).catch((err)=>{
console.log(err)
})
res.send(newUser);
})
app.listen(PORT, (err)=> {
if(!err) {
console.log('Server is listening on port' + " " + PORT );
}
});
- 架构文件
const UserSchema = mongoose.Schema({
name: {
type: String
},
age: {
type: Number
}
})
const User = mongoose.model('Alluser', UserSchema);
module.exports = User
【问题讨论】:
-
确保
req.body在您的/user路由处理函数中包含name和age属性 -
嗨,@Yousaf 我正在向邮递员发出发帖请求,并在那里给出名称和年龄属性的值。
-
尝试在控制台上记录
req.body.name和req.body.age并检查是否打印了正确的值 -
@Yousaf : 仅生成 id,id 进入控制台。但是当我像这样输入名称和年龄的静态值时:``` const newUser = new User({ name: 'Mukesh', age: 24 });然后它保存在数据库中
-
我不是要求记录用户文档。只需控制台日志
req.body.name和req.body.age并确保您从邮递员传递的值打印在控制台上。如果不是这种情况,则说明您的请求正文未正确解析