我想发布对象并在节点服务器上读取它,但是我有一个错误。
控制器:
$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
答案 0 :(得分:1)
您没有在帖子API中传递任何参数。 POST需要传递一个参数,因为你在请求URL中传递参数,你可以尝试传递一个像这样的空对象:
$http.post('/contactlist/' + contact,{}).then(function(response) {
console.log(response);
});
您正在尝试连接URL中的对象,这不是一个好方法。如果您仍想这样做,请将其字符串化,然后将其附加到URL。你可以在req.query
的帮助下得到它。但是,如果您更改网址并将联系人作为参数传递给API调用,则会更好。
问题解决了:
var OBJ = JSON.stringify(yourOBJ);
答案 1 :(得分:1)
对于节点js,有不同的语法,请参见下文:
var yourObj = {};
$http.post('/contactlist/' + contact, {data: yourObj}).then(function(response)
{
console.log(response);
});
这将有效