1

我有以下(简单)节点模块:

var json2xls = require('json2xls');
var fs = require('fs');
module.exports = function (router, mongoose) {
    router.route('/client/toExcel')
        .post(function (req, res) {
            var obj = req.body.data;
            var xls = json2xls(obj);

            fs.writeFileSync('data.xlsx', xls, 'binary');
            res.download('data.xlsx');

        });
    return router;
};

现在,当我从前端调用它时。节点服务器创建文件,但它发送回文件,但作为文本而不是作为可下载文件,这是我控制台上的屏幕截图:

在此处输入图像描述

谁能告诉我我做错了什么?

这是我的请求的图像:

在此处输入图像描述

4

2 回答 2

2

您是否尝试过像这样手动告诉表达文件名

res.download('/data.xlsx', 'data.xlsx');

我之前已经成功了。

于 2017-02-02T14:54:09.913 回答
0

您只需调用 API 即可直接下载文件

var json2xls = require('json2xls');
var fs = require('fs');
module.exports = function (router, mongenter code hereoose) {
    router.route('/client/toExcel')
        .post(function (req, res) {
            var obj = req.body.data;

            res.xls('data.xlsx', obj);
        });
    return router;
};
于 2020-05-21T09:53:57.690 回答