需要将数据从 NodeJS 服务器发送回 JQuery 客户端
Posted
技术标签:
【中文标题】需要将数据从 NodeJS 服务器发送回 JQuery 客户端【英文标题】:Need to send data back from a NodeJS server to a JQuery client 【发布时间】:2013-12-24 17:49:02 【问题描述】:我正在尝试将一些文件和数据从 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!"
【问题讨论】:
可以使用字节流。检查这个答案:***.com/questions/2558606/stream-data-with-node-js 【参考方案1】:要发送 JSON 数据或您可以使用的任何数据,res.send()
app.get('/filepath.json', function(req, res)
var response =
result: 'success',
upload: req.uploadLink,
message: 'File uploaded!'
;
res.send(response)
);
【讨论】:
以上是关于需要将数据从 NodeJS 服务器发送回 JQuery 客户端的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS|Cluster:如何将数据从主服务器发送到所有或单个孩子/工人?