首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用node.js获取JSON对象

使用node.js获取JSON对象
EN

Stack Overflow用户
提问于 2016-03-05 06:10:00
回答 3查看 686关注 0票数 0

我制作了一个简单的应用程序来学习node.js是如何工作的。使用jquery和ajax,我将一个JSON对象传递给一个node.js方法。问题是,我不知道如何在node.js方法中获取特定的JSON数据。

客户端代码:

代码语言:javascript
运行
复制
        $(document).ready(function(){

        $('#guardarVehiculo').click(function(){
            var car = JSON.stringify(agregarCarro());
            $.ajax({
                type: 'POST',
                data: car,
                url: '/saveCar',
                dataType: 'JSON'
            }).done(function( response ) {
                console.log(response);
            });
        });

    });

    function addCar(){
        var id = getById('id').value;
        var brand = getById('brand').value;
        var model = getById('model').value;
        var transmission = getById('automatic').checked ? getById('automatico').value : getById('mechanic').value;
        var comment = getById('comment').value;

        var car = new Car(id, brand, model, transmission, comment);

        return car;

    }

node.js代码:

代码语言:javascript
运行
复制
var express = require('express');
var fs = require('fs');
var app = express();

app.get('/', function(req, res){
    res.sendFile(__dirname + "/index.html");
});

app.post('/saveCar', function(req, res){
    console.log(req);
});

var server = app.listen(8000, function(){
  var host = server.address().address;
  var port = server.address().port;
  console.log('Server running at: ' + host + ':' + port);
});

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-05 06:21:31

您可以使用bodyParser中间件

代码语言:javascript
运行
复制
var app = express();
var bodyParser = require("body-parser");
app.use(bodyParser.json());

然后req.body将包含解析的JSON对象:

代码语言:javascript
运行
复制
app.post('/saveCar', function(req, res) {
    console.log(req.body);
});

只有一个抓到你。在进行AJAX调用时,需要设置适当的Content-Type头,以便正文解析器知道它应该处理JSON:

代码语言:javascript
运行
复制
.ajax({
    type: 'POST',
    data: car,
    url: '/saveCar',
    contentType: 'application/json',
    dataType: 'JSON'
}).done(function( response ) {
    console.log(response);
});
票数 3
EN

Stack Overflow用户

发布于 2016-03-05 06:48:31

回答以理解流程。

从客户端发布的JSON数据在req.body中接收。

req.body包含在请求体中提交的数据的键值对。默认情况下,它是未定义的,当您使用诸如体解析器之类的身体解析中间件时,它将被填充。

使用身体解析中间件将req.body填充为:

代码语言:javascript
运行
复制
var app = express();
var bodyParser = require("body-parser");
app.use(bodyParser.json());

magic req.body将服务器端发送的JSON数据:

代码语言:javascript
运行
复制
app.post('/save-car', function(req, res) {
    //hey! i am req.body and i have all data :)
});
票数 1
EN

Stack Overflow用户

发布于 2016-03-05 06:58:47

使用BodyParser模块。

服务器:

代码语言:javascript
运行
复制
var bodyParser = require("body-parser");
app.use(bodyParser.json());

路线:

代码语言:javascript
运行
复制
cars{
  brand: "Tesla",
  model: "S-sport",
  color: "white"
}

app.post('/saveCar', function (req, res) {
    console.log(req.body);
    //to response back as Json.
    res.json(cars);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35810771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档