对SailsJS api的POST调用显示JSON解析错误

时间:2018-10-23 05:31:01

标签: node.js json ajax http-post sails.js

我正在尝试使用Sails js API在mysql数据库中放入一些数据, 这是我通过ajax调用发送的数据

{"person":{"name":"Sahasrangshu Guha","address":"Dlf It Park Ii Block 1a, Plot No. Ii-F/1, Action A, Ericsson Kolkata","phoneNumber":"9830612244"}}

这是ajax调用标头

{ 'Content-Type': 'application/json', 'responseType': 'json' }

我的sails js控制器如下

module.exports = {

addPerson: function (req, res) {
    if (req.method == 'POST' && req.param('person', null) != null) {
        console.log(req.param('person'));
        Person.create(req.param('person'), (error, person) => {
            if(error) {
                res.send('Error:Sorry!Something went Wrong');
            } else {
                res.send('Successfully Created!');
            }
        });

            // Error handling
            // if (err) {
            //     res.send('Error:Sorry!Something went Wrong');
            // } else {}
            //     res.send('Successfully Created!');
            //     //res.redirect( ‘person/view/’+model.id);
            // }

    }
    else {
        res.send('Error:Sorry!Data Wrong');
    }
}
}

我的Sails js模型如下所示

module.exports = {
  tableName: 'person',
  primaryKey: 'id',
  attributes: {
  name: {
    type: 'string',
    required: true
  },
  address: {
    type: 'string',
    required: true
  },
  phoneNumber: {
    type: 'string',
    required: true
 }
  }

};

每当我向Sails js API发出POST请求时,我总是会遇到以下错误

  

{错误:语法错误:JSON中的意外令牌E在JSON.parse()的位置0

有什么办法解决这个问题吗?我试过发送对象而不是JSON数据,但是会遇到相同的错误。

1 个答案:

答案 0 :(得分:1)

在返回响应的同时,我认为这里需要一个对象而不是字符串      res.send(errObj); 错误obj应该是这样的

{
success: false,
status: 400,
message : 'Error:Sorry!Something went Wrong'
}

或发送带有状态码的消息

res.status(response.status || 500).send(response)