用猫鼬保存到mongodb失败,但未显示错误

时间:2018-07-18 19:36:16

标签: node.js mongodb mongoose

正在创建一个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

0 个答案:

没有答案
相关问题