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

最佳答案

发送JSON数据或您可以使用的任何数据,res.send({})

app.get('/filepath.json', function(req, res){
  var response = {
        result: 'success',
        upload: req.uploadLink,
        message: 'File uploaded!'
    };
  res.send(response)
});

10-04 11:51
查看更多