如何将fs.createReadstream和fs.promises结合使用

时间:2019-05-10 09:01:43

标签: javascript node.js promise stream fs

我使用“ require(“ fs”)。promises”只是为了避免使用回调函数。

但是现在,我也想使用“ fs.createReadstream”来附加带有POST请求的文件。

我该怎么做? 还是在这种情况下改变createReadstream? 还是我应该使用“ require(“ fs”)'?

2 个答案:

答案 0 :(得分:3)

因此,通过使用 const fs = require('fs').promises;,您只能访问 fs 模块的 promise 版本。根据规范,File System Promises API 中没有等效的 createReadStream 条目。如果您想要该功能,除了已承诺的 fs 版本之外,您还需要存储对它的引用。

我鼓励任何阅读本文的人在文件顶部使用以下内容,以包含 promises api 和 createReadStreams 功能。

const fs = require('fs').promises;
const createReadStream = require('fs').createReadStream;

您创建的读取流将如下所示(注意不再包含前置 fs.):

createReadStream('/your/path/here');

同样重要的是要注意:

根据规范,您最终会希望使用以下代码(免责声明,当前开箱即用的节点无法在没有某些标志/依赖项的情况下执行此操作)

import { createReadStream } from 'fs';

答案 1 :(得分:0)

您的问题有点笼统,但我可以为您提供一些有用的软件包。它并不能涵盖几乎所有功能,但是fs-extra包会自动使很多fs函数返回一个承诺,我绝对建议这样做。然后,您始终可以同时使用常规fs。至于fs.createReadStream(),您可能想将所需的东西包装在new Promise()中。