如何使用Node.js从服务器向客户端发送数据?
基本上,我通过点击按钮来调用此函数。
javascript
function createStuff(tid) {
$.ajax({
type: "POST",
url: '/create/',
data: {tid: tid}
success: function(id) {
doStuff(id);
},
error: function(jqXHR, textstatus, errorThrown) {
alert('text status ' + textstatus + ', err ' + errorThrown);
}
});
};
这个过程处理请求。服务器。
exports.create = function(req, res) {
new Stuff({
content: "random stuff"
}).save(function(err, stuff) {
Otherstuff.update({_id: req.body.tid}, {$push: {stuffes: stuff}}, {upsert: true}, function(err, mvar) {
res.redirect(301, '/' + req.body.tid);
});
});
};
但是我需要在res.redirect中发送新创建的stuff._id。问题是,我不想像res.redirect(301,'/' + req.body.tid + '/' + stuff._id)那样发送它,因为我将不得不创建一个全新的路由器,这似乎不太灵活。而且当我发出这个请求时,网页不会重新加载,这正是我想要的。
我尝试使用res.send(stuff._id),但我只能做一次(因为连接似乎在此之后关闭)。我正在使用以下库:mongoose、jquery、express
JSON.stringify(obj)
,它会自动为你完成,只需res.send({a:1,b:2})
。同样地,jQuery也会在客户端自动转换数据类型。 - deitchgetJSON()
或在请求中添加dataType: 'json'
时,JQuery才会进行转换。 - Salman