【问题标题】:Getting undefined while posting data to node js, from Angular Template从 Angular 模板将数据发布到节点 js 时获取未定义
【发布时间】:2018-01-21 06:27:52
【问题描述】:


因此,我再次尝试将数据从 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 没有定义。
我做错了什么。
请帮忙..

【问题讨论】:

  • 能否展示服务器端的完整功能代码以及如何加载架构以在该功能中使用?
  • 用 POST 和路由器代码更新了问题。

标签: angularjs node.js mongodb mongoose


【解决方案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 方法包含的文件中

在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);
      }
    });
};

【讨论】:

  • 我有一个疑问,当我从 POSTMAN 发布数据时,它保存成功。但是当我从网页发布时,我得到 null。为什么?
  • 我正在使用 Angular Js,当我执行 console.log 时,我可以看到从 angular 模板传递的整个数据,但只有在发布到服务器时才会导致问题,为什么?
  • 如何从角度调用这个 api 你能用角度代码更新你的问题吗?
  • $http({ url: '/add-to-sku', method: "POST", data: $scope.sku, headers: {'Content-Type': 'Application/json'} })
  • $http.post('/add-to-sku', $scope.sku).then(function(success) { console.log("success===",success) }, function(err) { console.log("err==", err);}) // 先检查你的$scope.sku 是否发送有效数据,然后检查控制台。哪一个得到
猜你喜欢
  • 2021-12-03
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-26
相关资源
最近更新 更多