如何将路径传递给fs.createReadStream?

时间:2018-02-15 02:17:53

标签: javascript node.js

我对nodejs相当新,所以如果我要求一些非常基本的东西,请原谅我。我已经构建了一个脚本,将数据写入文件,然后上传到松弛。

这是写入文件的内容 //写入文件

let myFile = '/tmp/' + Date.now() + '.txt';
fs.writeFile(myFile, myReport, function(err) {
    if(err) {
        return console.log(err);
    }
        console.log("The file was saved named: " + myFile);
 });

这是我上传到松弛的地方

const options = { method: 'POST',
    url: 'https://slack.com/api/files.upload',
    headers: slackHeaders,
    formData:
    {
        token: slackToken,
        channels: channelId,
        file: fs.createReadStream(path.join('/tmp/', Date.now() + '.txt')),
        filetype: 'text',
        title: 'Report',
    }
};

由于文件名正在更改,我尝试使用path.join(' / tmp /',Date.now()+' .txt')但它给了我一个错误

  

{" OK":假,"错误":" UPLOAD_ERROR"}

根据documentation,createReadStream只能接受" | | &#34 ;.如果我传入一个手动路径,它可以正常工作,但它不能使用path.join或myFile。

1 个答案:

答案 0 :(得分:0)

我怀疑文件名有所不同。 Date.now()每次运行时都会有所不同,因为它会为精确的毫秒创建时间戳。希望这可以帮助。