保存到MongoDB数据库的问题
这是我第二次尝试发布到数据库,这仍然是新知识。我正在从html表单接收字符串,并尝试保存到数据库中。我已经成功连接到mongodb,设置了我的发布路线,设置了我的模型,现在尝试发送http请求以将其保存到db。在设置模型之前,我可以进行console.log记录从表单中收到的数据。但是在设置模型并尝试获取将其保存到db的路径后,它只是挂起。如果我注释掉main.save()和console.log(main),我得到的alll是一个_id。 我不知道我在哪里出错
index.js
Sub Rpt1()
MsgBox "This worked"
End Sub
路线
const express = require('express')
const path = require('path')
const routes = require('../routes/routes')
const app = express()
const port = 3000
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
app.use(express.static(path.join(__dirname, '../public')))
app.use(routes)
app.listen(port, () => {
console.log('Server is up on port ' + port)
})
模型
const express = require('express')
const Main = require('../src/model')
const router = new express.Router()
router.post('/', async (req, res) => {
const main = new Main(req.body)
console.log(main)
try{
await main.save()
res.status(201).send(main)
} catch (e) {
res.status(400).send(e)
console.log('Not working!')
}
})
module.exports = router
接收_id,但挂在.save()
上答案 0 :(得分:0)
这是因为您要将整个req.body
传递给数据库。将此const main = new Main(req.body)
更改为此
let main= new Main({
total_check:req.body.total_check
});
只要确保您从前端或邮递员那里收到正确的数据即可。
也save
返回一个回调,因此也要处理该回调
main.save((err,main)=>{
if(err) {console.log(err) }
else { res.status(201).send(main) }
});