我正在尝试将一些文件和数据从NodeJS服务器发送回在JQuery中运行的客户端。我使用res.sendfile()从NodeJS服务器返回文件,但是在客户端计算机上下载文件。我只想将文件发送回JQuery代码(在Typescript中编写)并使其能够被JQuery代码操纵或呈现。我怎么能这样做?
我也尝试将JSON数据发送回客户端,但JSON数据在客户端呈现,而不是由JQuery代码处理。
这是在文件上传后接收JSON消息的客户端代码
function sendFile() {
$(new ID().setAsRoot().selectId()).append(
"<form id=\"fileUploadForm\" accept-charset=\"utf-8\" method=\"post\" action=\"/upload\" enctype=\"multipart/form-data\"><input id = \"filename\" type=\"file\" name=\"userfile\" multiple=\"multiple\" /><button type=\"submit\"> Upload </button></form>");
var $form = $("#fileUploadForm");
alert("Started");
$form.submit(function (e) {
// perform client side validations if any
this.ajaxSubmit({
error: function () {
alert("Error");
},
success: function (response) {
var x = response.message;
alert("Success : " + x);
}
});
// Important: stop event propagation
return false;
});
}
以下是发送响应的服务器端代码:
respond: function respond(req, res, next) {
console.log("Responding");
var response = {
result: 'success',
upload: req.uploadLink,
message: 'File uploaded!'
};
res.status(200).json(response);
console.log("Response complete");
},
这是在屏幕上呈现的JSON:
{
"result": "success",
"upload": "\\data\\tempFile4",
"message": "File uploaded!"
}
答案 0 :(得分:3)
发送JSON数据或您可以使用的任何数据,res.send({})
app.get('/filepath.json', function(req, res){
var response = {
result: 'success',
upload: req.uploadLink,
message: 'File uploaded!'
};
res.send(response)
});