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查询参数?
希望能帮助到你 :)