我有一个这样的功能:
exports.saveAction = function (req, res) {
var conn = mysql.createConnection({
host : nconf.get("database:host"),
//port: 3306,
user : nconf.get("database:username"),
password : nconf.get("database:password"),
database : nconf.get("database:database"),
multipleStatements: true,
//ssl: 'Amazon RDS'
});
var action = req.body;
conn.query('UPDATE actions SET ? WHERE Id = ?',
[action, action.Id], function (err, result) {
conn.end();
if (err) throw err;
res.writeHead(200, { "Content-Type": "application/json" });
res.end("Updated Successfully");
});
};
并且我返回“ 200”,但是它总是在如下所示的error子句中返回:
$.ajax({
url: "/api/action/SaveAction",
type: "PUT",
data: ko.toJSON(self.stripDownObj()),
datatype: "json",
contentType: "application/json; charset=utf-8",
success: function (result) {
console.log(result);
if(result.status == 200){
self.isEditMode(!self.isEditMode());
}
},
error: function(result){
console.log(result);
}
});
注意:sql查询成功并且确实保存了数据。
通过在期望JSON时返回JSON
res.end('{"success" : "Updated Successfully", "status" : 200}');
接着
$.ajax({
....
datatype: "json", // expecting JSON to be returned
success: function (result) {
console.log(result);
if(result.status == 200){
self.isEditMode(!self.isEditMode());
}
},
error: function(result){
console.log(result);
}
});
在Node中,您始终可以使用JSON.stringify来获取有效的JSON
var response = {
status : 200,
success : 'Updated Successfully'
}
res.end(JSON.stringify(response));
Express还支持
res.json({success : "Updated Successfully", status : 200});
它将对象转换为JSON并自动为您传递适当的标头。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句