使用Express从NodeJS Server下载.docx文件

时间:2017-07-02 09:09:36

标签: node.js express

我正在尝试使用express的res.download提示用户进行文件下载,但它似乎不起作用并在控制台中出错。

这是我的代码

router.get('/download', function(req, res){

    var file = __dirname + '/public/template.docx';
    res.download(file);

});

这给了我以下错误

  

ERROR SyntaxError:位于0的JSON中的意外标记P

1 个答案:

答案 0 :(得分:0)

我认为你可能做错了什么。这是一个功能性的例子:

const path = require('path');
const express = require('express');
const app = express();

app.get('/download-docx', (req, res) => {
  const docPath = path.join(__dirname, 'demo.docx');
  res.download(docPath, 'demo.docx', function(err){
    if (err) {
      // if the file download fails, we throw an error
      throw err;
    }
  });
})

const listener = app.listen(process.env.PORT, () => {
  console.log('Your app is listening on port ' + listener.address().port);
});

它假定上面文件所在的同一目录中有一个demo.docx文件。如果你想要一个功能齐全的例子,你可以编辑我在{{3}上为你构建的一个}。一个小问题,故障没有显示文件树中的demo.docx文件,但请确保它实际上存在。您可以使用左上角的“高级选项”菜单中的控制台选项自行确认。