首页 > 解决方案 > 使用 NODEJS 保存在 Mongodb 后如何获得响应

问题描述

通过保存来自邮递员的数据,我想从 MongoDB 获得响应,包括新创建的文档

代码

async save(req, res){

        const {score, multiplier, level} = req.body;
        const scores =  new Result({score, multiplier, level});
        const savedRes = await scores.save().then(resp=>{
            return resp
                .sendStatus(200)
                .send({
                message:'new record is saved',
                data: savedRes
 
            })
        }).catch(error=>res.sendStatus(500).send(error))
    }

蒙戈配置

const app = express()
 mongoose.connect(process.env.MONGODB_URL,{
    useNewUrlParser: true,
    useUnifiedTopology: true,
 })
 const con= mongoose.connection
try{
    con.on('open',() => console.log('db connected'))
} catch(error){
     console.log(error)
}
 app.use(cors({origin:"*"}))

实际结果

预期结果

{
message: 'new record is saved',
data: {
    level: 1,
    multiplier:8
}
}

标签: node.jsmongodbexpress

解决方案


不要同时使用res.sendStatusres.send。您可以使用res.status(200).json({sample : "sample"})指定响应状态代码和响应正文。

async save(req, res){
const {score, multiplier, level} = req.body;
const scores =  new Result({score, multiplier, level});
try{
const savedRes = await scores.save();
res.status(200).json({ message:'new record is saved', data: savedRes });
}catch(err){
res.status(500).json({
Message:"Internal Server Error",
Info: err
})
}
}

推荐阅读