Node.js:如何交换一个JSON对象

我的目的是从客户端发送一个JSON对象到服务器。 所以考虑到客户的以下细节:

<script> var onClickFunct = function() { trial1.send({ "test": $("#input_test").val(), }); } </script> 

其中input_test是我的标签在HTML页面的名称。 以下代码实现了trial1:

 var trial1 = { //notifica al server una nuova registrazione send: function(data){ $.getJSON('/tst',data); } } 

我的服务器无法看到对象; 事实上,如果我打印req.params它显示我“未定义”。

 app.get('/tst',function(req){ console.log(req.params); }); 

我的index.html吸引了以下脚本<script src="https://code.jquery.com/jquery-1.10.2.js"></script>

而服务器只需要express

尝试改变:

 app.get('/tst',function(req){ console.log(req.params); }); 

至:

 app.get('/tst',function(req){ console.log(req.query); }); 

req.params是你的路由参数,如:

 app.get('/test/:name', function (req, res) { console.log(req.params); }); 

当你访问/test/abc然后req.params.name将是"abc"

$.getJSON()发送数据作为查询参数,请参阅:

而对于你使用res.query的查询参数。

如果这是一个POST请求,并且你想访问在请求体中传递的参数,那么你将用户req.body (但你需要使用bodyParser中间件)。

请记住只使用GET来进行阅读操作,在查询参数中你指定你想要得到什么或者以什么forms,什么顺序等等。

如果你传递的数据存储在数据库或类似的东西,然后使用POST或PUT,并传递请求体内的数据(可以是JSON)。

 $ npm install --save body-parser 

接着:

 var bodyParser = require('body-parser') app.use( bodyParser.json() ); // to support JSON-encoded bodies app.use(bodyParser.urlencoded({ // to support URL-encoded bodies extended: true })); 

你的端点应该是这样的:

 app.post('/tst',function(req){ console.log(req.body); }); 

然后使用jquery post:

 $.post('/tst',data); 

从这里采取的身体parsing器安装示例:

如何检索POST查询参数?

希望能帮助到你 :)