正在创建一个nodejs书店应用。 字符串/数字/布尔值的图书详细信息将使用猫鼬保存在MongoDB中,而图书封面图像将保存在我的根目录中的上载文件夹中目录使用multer 。这是我的猫鼬模式:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
//Creating schema and model
var BookDataSchema = new Schema({
title: String,
author: String,
isbn: String,
price: Number,
quantity: Number,
availability: Boolean,
description: String
});
var BookData = mongoose.model('BookData', BookDataSchema);
module.exports = BookData;
这是执行保存功能的代码:
router.post('/', function (req, res) {
var newBook = new BookData({
title: req.body.bkname,
author: req.body.bkauthor,
isbn: req.body.bkisbn,
price: req.body.bkprice,
quantity: req.body.bkquant,
description: req.body.bkdesc
});
newBook.save(function (err) {
if (err) {
console.log(err);
} else {
console.log(newBook);
console.log('Book Details saved successfully');
}
});
}, function(req, res) {upload(req, res, (err) => {
if (err) {
console.log(err);
res.render('admin', {
msg: err
});
} else {
console.log(req.file);
return res.render('admin');
}});}
);
主要问题是当我console.log(newBook)或console.log(result)或检入mongo shell时,我看到的只是 {_id:5b4fdba80420890764ce13bf,__v:0} ,只有显示mongodb创建的 id ,这意味着未保存其他数据,更糟糕的是,该数据无法继续执行其他回调函数。除此警告外,没有其他错误:
(node:1220) [DEP0079] DeprecationWarning: Custom inspection function on Objects via .inspect() is deprecated
我测试了保存图像的代码(不包括保存其他数据的代码),它工作正常。请帮助解决可能出现的问题,并为我提供有关如何确保仅在保存所有内容后呈现管理页面的建议。查看整个项目in_this_git_repo