在Node.js中找不到文件

时间:2013-07-10 16:01:10

标签: node.js

我无法理解如何在Node.js Expresss Webapp中访问本地文件。

我想使用excel-parser包来读取我放在/ public / assets /中的文件,这应该在索引页面加载时读取。

所以我开始创建ExpressJS应用程序,并在index.js中创建以下内容:

exports.index = function(req, res){
  var excelParser = require('excel-parser')

  res.render('index', { title: 'Excel test' });

  excelParser.worksheets({
    inFile: '/assets/test_data.xlsx'
    }, function(err, worksheets){
      if(err) console.error(err);

      console.log('[INFO] Worksheet output: ');
      console.log(worksheets);
    });
};

在ny控制台中虽然收到错误“找不到文件”,但“工作表”未定义。

我也试过以下路径:

  • /公/资产...
  • __ dirname +'/ public / assets /...'
  • __ dirname +'/ assets /...'

所有提供相同的错误。

1 个答案:

答案 0 :(得分:1)

您需要相对于您的app根目录获取文件。现在,'/ assest'会尝试从驱动器的根目录获取它。

您可以在模块的早期获取主JS文件的根目录:

var path = require('path');
var root = path.dirname(require.main.filename);

然后使用它:

inFile: root + '/public/assets/test_data.xlsx'