sails:TypeError:path必须是一个字符串

时间:2015-09-04 10:11:09

标签: json node.js sails.js

我正在尝试使用xls-to-json节点模块将xls文件读取为json格式  发送文件路径时,它显示错误,如路径必须是字符串

我正在使用以下代码段

var fs = uploadedFiles[0].fd;
//fs is a file path                                                     
node_xj = require("xls-to-json");
node_xj({
          input:fs, 

        }, function(err, result)
           {
                if(err) 
                {
                   console.error(err);
                } 
                else 
                {
                    console.log(result);
                }
            });

错误

    fs.js:430
  binding.open(pathModule._makeLong(path),
          ^
TypeError: path must be a string

请帮助解决此问题。

1 个答案:

答案 0 :(得分:1)

我的回答基于xls-to-json文档本身。让我们假设您有接受文件作为输入文件的操作。输出是同一文件夹中的json文件。因此,当您通过HTTP请求发送文件时,可以使用upload方法上传该文件。 files是包含已上传文件的数组,您可以通过fd属性获取文件路径。

所以这个例子应该可以正常工作:

// api/controllers/AnyController.js
var path = require('path');
var xlsToJson = require('xls-to-json');

module.exports = {
  index: function(req, res) {
    req.file('param_name').upload(function(error, files) {
      if (error) return res.serverError(error);

      xlsToJson({
        input: files[0].fd,
        output: path.resolve('./', 'output.json')
      }, function(error, result) {
        if (error) return res.serverError(error);
        res.ok(result);
      });
    });
  }
};