使用javascript解释器“ otto”,如何在客户端读取文件

时间:2018-08-14 08:30:02

标签: javascript webpack

我遇到了困难。

我正在实现读取文件,对其进行编码并将其发送到服务器的逻辑。 当前,用作javascript解释器的库正在使用“ otto”。

我像

一样导入了“ fs”(我知道它是内置模块)

var fs = require("fs"); fs.readFileSync('./test.txt', 'utf8');

但发生了错误Module not found: Error: Can't resolve 'fs'

因此,我在webpack.config.js文件中插入了node: { fs: "empty" }。 这样就不会发生编译错误。但是,当我使用cli调用包含fs.readFileSync的函数时,发生了错误。 TypeError: 'readFileSync' is not a function

  1. 第一个问题: 我知道'otto'只是javascript解释器。因此,当我导入“ fs”时,找不到模块吗?
  2. 第二个问题: 如果没有,如何从客户端读取文件并将其发送到服务器?
  3. 最后一个问题:使用“ otto”是不可能的?

这是我的规格。 macOS High Sierra,Webpack 4.9.1,Node.js 8.11.1。

1 个答案:

答案 0 :(得分:0)

  

如何在客户端读取文件

由于您提到了Webpack,所以我假设这里的“客户端”是浏览器。要从浏览器读取文件,请使用File API。请注意,您的代码无法指定要读取的文件。 用户通过在input type="file"元素中选择一个文件,或将一个文件拖到放置区域中来做到这一点。在这两种情况下,您都会得到一个File object,您可以使用File API进行读取。

您无法在浏览器中使用fs Node.js模块。