【问题标题】:How to post JSON object angularjs如何发布JSON对象angularjs
【发布时间】:2017-12-15 05:29:51
【问题描述】:

我想发布对象并在节点服务器上读取它,但我有一个错误。

控制器:

$scope.update = function(contact) {
console.log(contact);
    $http.post('/contactlist/' + contact).then(function(response) {
        console.log(response);

    });
};

服务器节点:

app.post('/contactlist/:contact', function (req, res, next) {
    console.log(req.body);
    res.json();
});

服务器节点头:

var express =  require('express');
var app = express();
var mysql      = require('mysql');
var bodyParser = require('body-parser');
var connection = *****************

app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({extended:false}));
app.use(express.static(__dirname + "/public"));

错误网络POST截图: enter image description here

console.log(req.body) 的服务器错误;

[object Object] SyntaxError: Unexpected token o in JSON at position 1

【问题讨论】:

    标签: angularjs json node.js


    【解决方案1】:

    您没有在您的帖子 API 中传递任何参数。 POST 需要传递一个参数,由于您在请求 URL 中传递参数,您可以尝试传递一个空对象,如下所示:

     $http.post('/contactlist/' + contact,{}).then(function(response) {
            console.log(response);
    
        });
    

    您试图在 URL 中连接一个对象,这不是一个好方法。如果您仍想这样做,请将其字符串化,然后将其附加到 URL。您可以在req.query 的帮助下获得它。但最好更改 url 并将联系人作为参数传递给 API 调用。

    问题已解决:

    var OBJ = JSON.stringify(yourOBJ);
    

    【讨论】:

    • 我认为你正在传递一个数组联系人
    • 之前需要对数组进行字符串化
    • 怎么知道是不是数组?铬说:对象{id:571,名称:“QSDF”,电子邮件:“QSDFQSD”,编号:“FQSDF”}这不是JSON?
    • 它只是一个 JSON 而不是一个数组,但你必须正确处理它。如果它是一个对象,为什么不将其传递为 $http.post('/contactlist/' , contact).then(function(response) { console.log(response); });并更改您的 nodejs 代码
    • 我进行了字符串化,但我还有另一个问题,因为我有 2 个帖子进入不同的范围。 $scope.add $scope.update 节点服务器结果是 server.js 的第一个(来自 add 的帖子)。你知道如何解决这个问题吗?
    【解决方案2】:

    对于 node js,有不同的语法,请参见下文:

    var yourObj = {}; 
    $http.post('/contactlist/' + contact, {data: yourObj}).then(function(response) 
    {
        console.log(response);
    
    });
    

    这会起作用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      相关资源
      最近更新 更多