需要将数据从NodeJS服务器发送回JQuery客户端

时间:2013-12-07 09:31:37

标签: javascript jquery node.js express

我正在尝试将一些文件和数据从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!"
}

1 个答案:

答案 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)
});