在异步函数内写入 Node.JS 中的文件

量子实验室

我正在写入异步函数内的文件:

let Parser = require('rss-parser');
const fs = require('fs')

function parse(feed_url) {
    let parser = new Parser();
    (async () => {
        let feed = await parser.parseURL(feed_url);
        fs.writeFileSync('./output.json', JSON.stringify(feed), {
            encoding: "utf8",
            mode: 0o666
          })
    })();
    const data = fs.readFileSync('./output.json', 'utf8')
    fs.unlinkSync('./output.json');
    return data
}

console.log(parse('https://www.reddit.com/.rss'))

我现在得到错误:

Error: ENOENT: no such file or directory, open './output.json'

如果想知道,我确实需要在 async 函数中写入文件,因为我正在使用一个包。

如何写入异步函数内的文件,然后在异步函数外读取该文件?

更新:添加完整代码。

雅罗曼达 X

使函数解析异步

那么你的代码很简单

async function parse(feed_url) {
    let parser = new Parser();
    let feed = await parser.parseURL(feed_url);
    fs.writeFileSync('./output.json', JSON.stringify(feed), {
        encoding: "utf8",
        mode: 0o666
      })
    const data = fs.readFileSync('./output.json', 'utf8')
    fs.unlinkSync('./output.json');
    return data
}

parse('https://www.reddit.com/.rss').then(console.log);

当然......你为什么需要一个文件!!!!

async function parse(feed_url) {
    let parser = new Parser();
    let feed = await parser.parseURL(feed_url);
    return JSON.stringify(feed)
}

parse('https://www.reddit.com/.rss').then(console.log);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章