2016-12-18 17 views
6

Tôi có một máy chủ như sau:Node.js làm thế nào để đọc dữ liệu json từ yêu cầu?

app.post('/', function(req, res, next) { 
    console.log(req); 
    res.json({ message: 'pppppppppppppssssssssssssss ' }); 
}); 

Các yêu cầu được gửi từ một khách hàng như:

$.ajax({ 
    type: "POST", 
    url: self.serverURI, 
    data: JSON.stringify({ "a": "128", "b": "7" }), 
    dataType: 'json', 
    success: function (result) { 
     console.log(result); 
    }, 
    error: function (xhr, ajaxOptions, thrownError) { 
     console.log(xhr); 
    } 
}); 

cho đến nay mức phạt kết nối.

Vấn đề của tôi là trong máy chủ:

console.log(req); 

nơi tôi muốn đọc dữ liệu tôi gửi đi. Làm cách nào để đọc { "a": "128", "b": "7" } từ req?

Trả lời

4

Mặc dù bạn không đề cập đến nó, mã của bạn có vẻ như được viết cho môi trường Express. Câu trả lời của tôi là nhắm mục tiêu đến điều này.

Đảm bảo sử dụng body-parser cho Express. Trong trường hợp, dự án của bạn phụ thuộc vào một số mã boilerplate được tạo ra, nó rất có thể đã được bao gồm trong kịch bản máy chủ chính của bạn. Nếu không được:

var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 

Lắp đặt với NPM: npm install body-parser --save

Các JSON phân tích cú pháp sau đó có thể được truy cập thông qua req.body:

app.post('/', function(req, res, next) { 
    console.log(req.body); // not a string, but your parsed JSON data 
    console.log(req.body.a); // etc. 
    // ... 
}); 
+0

Cảm ơn bạn rất nhiều, nó làm việc. Cuối cùng ufffffff. Nó sẽ là tuyệt vời nếu bạn có thể giải thích làm thế nào tôi có thể gửi một JSon cho khách hàng bằng tham số "res" :) – arslan

+0

'res.json (đối tượng)' là cách chính xác để đi. Như đã được đưa ra trong mã mẫu của bạn. – qqilihq

+0

Tôi đọc nhiều hướng dẫn. Một số sử dụng "res.json (đối tượng)", một số sử dụng "res.end (cái gì đó)", khá khó hiểu cho những người mới này. – arslan

Các vấn đề liên quan