从Angular Template中将数据发布到节点js时获取未定义

时间:2017-08-13 04:49:21

标签: angularjs node.js mongodb mongoose


所以,我再次尝试将数据从Angular js前端发布到节点js,然后将其保存到mongoDb。

型号

var skuSchema = new Schema({
    merchantId: {type: String, required: false},
    vendorId: {type: String, required: false},
    sku:{
        productId: {type: Array, required: false},
        quantity: {type: Array, required:false}
    }
});

POST方法
所以,我确实喜欢这样:

module.exports.createSku = function (sku, callback) {
    Sku.create(sku, callback);
};


路由器

router.post('/add-to-sku', function (req, res, next) {
    var sku= req.body;
    Sku.createSku(sku, function (err, sku) {

        if (err) {
           // res.sendStatus(404);
            throw err;
        }
        res.json(sku);
    });

});

但同样,我的数量未定义,& productId参数。
我做错了什么。
请帮忙..

1 个答案:

答案 0 :(得分:1)

您的架构应该导出为像

这样的猫鼬模型
var skuSchema = new Schema({
    merchantId: {type: String, required: false},
    vendorId: {type: String, required: false},
    sku:{
        productId: [{type: String, required: false}], 
        quantity: [{type: Number, required:false}] 
    }
});
module.exports = mongoose.model('Sku', skuSchema );

然后在包含POST方法的文件中加载此文件

在帖子方法文件中

var Sku = require('../your_schema_file_path');


exports.createSku = function (skuData, callback) {
    // check your `skuData` object is it like your schema 
    var newSku = new Sku(skuData);
    newSku.sku.productId = skuData.productId; // if passed {productId:[..]} instead {sku.productId:[..]}
    newSku.save(function(err, sku) {
      if(err) {
         callback(err, null);
      } else {
         callback(null, sku);
      }
    });
};