2012-11-15 25 views
34

Tôi đã viết những đoạn mã sau đây trong nodeJS/server của Expressjs:Tôi làm cách nào để gửi trạng thái thành công tới trình duyệt từ nodejs/express?

app.post('/settings', function(req, res){ 
var myData = { 
    a: req.param('a') 
    ,b: req.param('b') 
    ,c: req.param('c') 
    ,d: req.param('d') 
} 

var outputFilename = 'config.json'; 

fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) { 
    if(err) { 
     console.log(err); 
    } else { 
     console.log("Config file as been overwriten"); 
    } 
}); 

});

Điều này cho phép tôi lấy dữ liệu biểu mẫu đã gửi và ghi nó vào tệp JSON.

Điều này hoạt động hoàn hảo. Nhưng khách hàng vẫn còn trong một số loại đăng nhà nước và cuối cùng lần ra ngoài. Vì vậy, tôi cần phải gửi một số loại trạng thái thành công hoặc tiêu đề thành công trở lại cho khách hàng.

Tôi nên làm như thế nào?

Cảm ơn bạn trước!

Trả lời

74

nhanh Update 2015:

Sử dụng này để thay thế:

res.sendStatus(200) 

này đã được chấp nhận:

res.send(200) 
+0

Im nhận ServerResponse không có phương thức sendStatus – naoru

+1

Bạn có chắc là bạn đã cài đặt Express và Express v4 không? – ac360

+1

Có! thêm ngày vào câu trả lời. Có rất nhiều câu trả lời lỗi thời. Đặc biệt là để thay đổi nhanh chóng ngăn xếp.Chúng ta nên tốt cho ít nhất một vài tháng :) –

8

jup, bạn cần phải gửi một câu trả lời trở lại, đơn giản nhất sẽ là

res.send(200); 

Bên trong handler callback của writeFile.

200 là một mã trạng thái HTTP, do đó bạn thậm chí có thể thay đổi mà trong trường hợp thất bại:

if (err) { 
    res.send(500); 
} else { 
    res.send(200); 
} 
+0

yup đó chính xác là những gì bị thiếu! – tUrG0n

+0

Làm việc như một sự quyến rũ. Cảm ơn nhiều! – jansmolders86

19

Chỉ muốn thêm, bạn có thể gửi json qua res.json() helper.

res.json({ok:true}); // status 200 is default 

res.json(500, {error:"internal server error"}); // status 500 

Cập nhật 2015:

res.json(status, obj) đã phản đối ủng hộ res.status(status).json(obj)

res.status(500).json({error: "Internal server error"}); 
+0

Ah tuyệt vời, tôi không biết điều đó, cảm ơn bạn! – jansmolders86

+0

Điều này khá thú vị! Cảm ơn bạn! – MadPhysicist

7

Trong nhanh 4 bạn nên làm:

res.status(200).json({status:"ok"}) 

thay của người không được chấp nhận:

res.json(200,{status:"ok"}) 
Các vấn đề liên quan