node.js - Webpack nodejs fs.readFile 不是函数

标签 node.js webpack fs

我有一个 webpack 配置,例如:

var path = require('path')

module.exports = {
    entry: "./index.js",
    output: {
        path: path.join(__dirname, 'static'),
        filename:'bundle.js'
    },
    module: {
        loaders: [
            { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"},
            { test: /\.json$/, loader: 'json-loader' },
        ]
    },
    node: {
      fs: "empty"
    }
};

我想使用 fs

读取文件

我正在做类似的事情:

var fs = require('fs')
console.log(fs)

fs.readFile('input.txt', function (err, buffer) {
        console.log("buffer")
        console.log(buffer)


    })

我只想在这里读取一个文件,但是当我这样做时,它给了我一个错误提示:

fs.readFile is not a function

我已经使用 npm install --save fs

安装了 fs

当我打印 fs 时,它也会给我一个空对象。 上面我已经完成了 console.log(fs) 它给了我空对象

这里有什么问题?

最佳答案

我相信上面提到的评论,

node: { fs: "empty" }

需要删除。 此外,您的所有代码都必须在服务器上运行。您无法在浏览器中读取此类文件。 Node API 仅在服务器端,因此您需要使用 express 或一些类似的库来构建 API 例如

    router.get('/file/read', (req, res, next) => { fs.readFile('input.txt', function (err, buffer) {
            console.log("buffer")
            res.send(buffer);
        }) 
    })

然后在您的浏览器中,您需要使用 AJAX 来调用 API 并检索文件内容。

读取任意文件存在明显的安全问题。您不应该允许 api 读取用户喜欢的任何文件。您应该非常小心地限制输入并限制可用的文件集。

关于node.js - Webpack nodejs fs.readFile 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37319299/

相关文章:

c# - node js中的Windows命名管道(首选共享内存)

node.js - Sequelize Op.or within Op.and 用于嵌套操作

node.js - 找不到名称 __values

node.js - 如何递归地遍历目录,通过 node.js 中的套接字发送所有文件名?

javascript - 读取 txt 文件的行并组织在 JSON 文件中

javascript - 没有找到类验证器的元数据

javascript - 将 ejs 与expressjs 一起使用时出现内部服务器错误

javascript - 如何使用 webpack 将 ES6+ 代码编译成 ES6?

webpack - 初始化 vue-cli 时颁发者证书问题

node.js - 如何将使用 fs.readFileSync() 的 Node.js 代码重构为使用 fs.readFile()?