使用mongoose将表单数据插入mongodb时出现无法解释的行为

时间:2018-01-30 15:37:27

标签: mongodb express mongoose mongoose-schema

    var express = require('express');
    var router = express.Router();
    var mongoose = require('mongoose');
    mongoose.connect('mongodb://127.0.0.1/shopper');

    var Schema = mongoose.Schema;
    //give constriants of schema and columns
    var productSchema =Schema({

        product_Name : String ,
        product_Description :String ,
        product_price : Number ,
        product_logo :String   

    });
    //create model of the schema 
     var product = mongoose.model('product',productSchema)

module.exports = router.post('/AddProduct',function(req,resp){

    console.log(req.body);

//create schema

 var newproduct = new product({

    product_Name : req.body.product_Name ,
    product_Description : req.body.product_Description ,
    product_price : req.body.product_price,
    product_logo : req.body.product_logo 
 });
console.log(newproduct);
newproduct.save(function(err){
    if(err) console.log("insertion failed");
});
    resp.status(200).redirect('./add-Product-form/');


});

的console.log(req.body);

{ product_Name: 's',
  product_description: 'ydtdh',
  product_price: '232',
  product_logo: 'error.png' }

的console.log(newproduct的)

{ _id: 5a6ffc303df3d62e0451dd12,
  product_Name: 's',
  product_price: 232,
  product_logo: 'error.png' }

为什么在我将所有内容设置正确或者我遗漏了某些内容时发生了这种异常现象。当文档插入mongodb时,缺少一列

2 个答案:

答案 0 :(得分:1)

{ product_Name: 's', product_description: 'ydtdh', product_price: '232', product_logo: 'error.png' } 返回:

product_description

字段product_Description应该是#!/bin/bash -ex cd '/usr/software/lampstack-5.4.38-0' ./use_lampstack echo $PATH cd'mysql/bin' mysql -u root -p
它仅仅是Schema 区分大小写

的问题

答案 1 :(得分:0)

在您的表单中,将名称为textarea的{​​{1}}或input元素更改为product_description(注意说明中的大写product_Description,然后直接做:

D

或者使用create method:

var newproduct = new product(req.body);
newproduct.save(function(err) { ...  });