我正在创建一个nodejs书店应用程序 . Books details which are strings/numbers/booleans are to be saved in MongoDB using mongoose 而 book cover image is to be saved in an uploads folder in my root directory using multer .Here是我的 mongoose schema :
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(结果)或者检查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