在 node.js 中获取请求对象数组

Tje123

我将 AngularJs 用于客户端应用程序和使用 Node.js 运行的后端。我必须从客户端发送一些数据到后端标头和正文。

AngularJs 代码

$scope.checked_pages=
[
  {
   page_name : BMW,
   pg_id : 123
  },
   {
   page_name : Audi,
   pg_id : 12334
   },
   {.....},
   {......}
];

  $http.post(
      'www.abc.com/../.../index?name=ab',{data: $scope.checked_pages})
    .then(function mySuccess(response) {
       console.log("success ", response);
     }, function myError(response) {
      console.log("Error ", response);

    });

节点.js

        exports.index = (req, res) => {
        var client_name = req.query.name;
        var pgid=req.body.pg_id;
        var pgname=req.body.page_name;

        req.checkBody('name', 'Client name cannot be empty').notEmpty();
        req.checkBody('page_name', 'FB page name cannot be empty').notEmpty();
        req.checkBody('pg_id', 'FB page id cannot be empty').notEmpty();

    const errors = req.validationErrors();

      if (errors) {
        response.fail(res, response.message.parameter_missing, errors);
        return;
      }else{
        var msg = {
                msg: 'data received !'
              };
       response.success(res, msg);
      }
};

问题

当我像下面一样发送正文数据(单个对象)时,我可以在节点端获取正文数据。但是当我array object像上面一样发送时,节点端显示错误。

$scope.checked_pages=
  {
   page_name : BMW,
   pg_id : 123
  };

错误信息 在此处输入图片说明

阿雷尔·萨皮尔

错误原因:

responseObject: {page_name: "this is a field inside the response"}
responseArray: [{page_name: "this is a field inside the object inside the response"}]

Array 没有任何字段。Array 中只有对象而没有字段,因此在响应中查找字段的测试将执行错误。

可能的解决方案:不依赖于“req.checkBody”

exports.index = (req, res) => {
    var client_name = req.query.name;
    var pgid=req.body.pg_id;
    var pgname=req.body.page_name;

    req.body.forEach((dataItem) => {
        /* WRITE YOUR OWN CODE BELOW */
        // is 'name' field empty?
        // is 'page_name' field empty?
        // is 'pg_id' field empty?
    })

  // Do something with the new knowledge and create 'errors' variable

  if (errors) {
    response.fail(res, response.message.parameter_missing, errors);
    return;
  }else{
    var msg = {
            msg: 'data received !'
          };
   response.success(res, msg);
  }
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章