【发布时间】:2020-10-23 11:15:53
【问题描述】:
我知道以前有人问过这个问题,但我觉得我做的一切都是正确的,但我仍然遇到问题。我想使用 mongoose 将表单中的项目保存到我的 mongodb 集合中。
我的架构:
// stationmodel.js
export const StationSchema = new mongoose.Schema({
"FDID": String,
"Fire dept name": String,
"HQ addr1": String,
"HQ city": String,
"HQ state": String,
"HQ zip": Number,
"HQ phone": String,
"Dept Type": String,
"Organization Type": String,
"Website": String,
"Number Of Stations": Number,
"Primary agency for emergency mgmt": Boolean,
}, {collection: "FEMA_stations"})
在我的快递应用中:
// in routes.js
const StationSchema = require('./stationmodel')
const Station = mongoose.model('Station', StationSchema, 'FEMA_stations')
const addstation = (req, res) => {
console.log(req.body)
const newStation = new Station(req.body)
newStation.save( function(err){
if (err) { console.error(err) }
console.log('newStation after save', newStation)
})
}
const routes = app => {
app.route('/api/addstation')
.post(addstation)
}
export default routes
// in index.js
import routes from './routes'
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())
routes(app)
在我的前端代码中,在 redux 操作中调用后端:
fetch('/api/addstation', {
method: "POST",
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(stationToAdd)
})
当我在后端console.log(req.body) 时,我得到了我期望的数据。它看起来像这样:
{
FDID: '202020',
'Fire dept name': 'Some Fire Department',
'HQ addr1': 'Some address',
'HQ city': 'San Dimas',
'HQ state': 'CA',
'HQ zip': 99999,
'HQ phone': '5555555555',
'Dept Type': 'Career',
'Organization Type': 'State',
Website: '',
'Number Of Stations': 0,
'Primary agency for emergency mgmt': true,
}
但是当我console.log 我的newStation 我正在尝试.save() 时,我得到的只是这样的回复:
{ _id: 5efe29911ea067248f3c39a0, __v: 0 }
我知道其他人的架构、模型存在问题,确保他们真正连接到他们的 mongodb 集合,或者确保请求是使用 application/json 标头发出的,但我觉得我有那些事情对。该代码是从一个更加模块化的应用程序中拼凑而成的,以尝试减少脂肪并提出核心问题,所以如果我遗漏了任何明显的信息,请告诉我。
这里可能出了什么问题?为什么来自req.body 的数据没有进入我试图保存到集合中的新文档?感谢阅读。
【问题讨论】:
-
您可能正在寻找
console.log('newStation after save', newStation.toObject()) -
嗯,不,这没有任何改变。我仍然没有看到我的
req.body中的所有属性都显示在我新创建的Station中。感谢您链接其他帖子,但他们没有回答我的问题。他们关心过滤掉不需要的属性。我的问题更多是关于为什么我的req.body没有进入我的新文档。我会编辑我的问题,但如果您能将其打开,我将不胜感激 -
对不起,我没有意识到数据没有正确保存,我以为你只是担心数据在日志中不可见。
-
不用担心,感谢您打开它。
标签: javascript node.js mongodb express mongoose