Nodejs fs.writefile抛出TypeError:第一个参数必须是一个字符串

时间:2017-03-08 04:29:53

标签: node.js string base64 fs

旨在将base64保存到指定文件路径中的代码

class FileURI {
  constructor() {
    this.id = shortid.generate();
    this.localURI = 'public/uploads/' + this.id + '.jpg';
    this.localURIexplicit = './' + this.localURI;  //Required by XXXX
    this.publicURL = 'https://xxx.xyz/' + this.localURI;
  }

  static saveB64toUrl(b64data) {
    return new Promise((resolve, reject) => {
      let fileLoc = new FileURI();
      fs.writeFile(fileLoc.localURI, new Buffer(b64data, 'base64'),
        function (err) {
          if (err) reject(err);
          else {
            console.log("filename created: " + fileLoc.localURI + " in " + fileLoc.publicURL);
            resolve(fileLoc);
          }
        });
    });
  }
}

即使仔细检查fs doc并执行手动将文件路径更改为最简单fs.writeFile('public/uploads/a.jpg', new Buffer(b64data, 'base64')的明显方法,我仍然始终会收到以下错误。

  

0|server | TypeError: First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.

之前正在合理地工作,甚至通过逐行彻底检查,我无法找出到目前为止所做的改变。

我真的希望只是在所需的URI格式中输入错误或误解。

0 个答案:

没有答案