【问题标题】:fs.writeFile is not working on my ReactJs / NodeJs appfs.writeFile 在我的 ReactJs / NodeJs 应用程序上不起作用
【发布时间】:2019-03-22 22:53:56
【问题描述】:

我正在尝试使用 reactJS 和 nodeJs 在文件中编写一些东西,但它不起作用。这是我的代码,是一个简单的代码,我知道 fs.writeFile 不是函数。对于我从 fs 使用的每个函数,我都会收到此错误。在 node_module 中,我有 fs 的文件夹,但里面只有 package.json 和自述文件。我不知道该怎么办,我在网上搜索了答案,但没有。任何帮助都会很棒

import React, { Component } from 'react'

const fs = require('fs');

export default class WriteFile extends Component {

write = () => {
    fs.writeFile("file.txt", "Hey there!", function(err) {
        if(err) {
            return console.log(err);
        }

        console.log("The file was saved!");
    }); 
}

render() {
    return (
    <div>
        <button className='btn btn-info' onClick={this.write}>scria-ti-as</button>
    </div>
    )
 }
}

还有错误

TypeError: fs.writeFile is not a function

WriteFile._this.write

D:/js/login_reactjs/src/components/WriteFile.js:8

5 | export default class WriteFile extends Component {

6 | 

7 |     write = () => {

8 |         fs.writeFile("file.txt", "Hey there!", function(err) {

9 |             if(err) {

10 |                 return console.log(err);

11 |             }

【问题讨论】:

  • 尝试 import fs from 'fs' 而不是 const fs = require('fs');
  • @S.Haviv 现在我收到此错误:TypeError: fs__WEBPACK_IMPORTED_MODULE_6___default.a.writeFile is not a function
  • 你是如何创建你的 react 应用的?使用 create-react-app 命令?
  • 是的,那样@S.Haviv

标签: node.js reactjs


【解决方案1】:

fs 无法在浏览器中运行。这是设计使然。 fs 已被淘汰见this ticket

如果使用支持 browserifybrowserFS 等浏览器的软件包,您的运气会更好

【讨论】:

  • 如果我必须使用一些使用文件系统的外部函数怎么办?
  • @Horatiu123456 使用 browserify 或一些类似的包。
  • @Horatiu123456 看到这个ticket
【解决方案2】:

在浏览器中你应该使用 File API 来访问文件 - https://www.html5rocks.com/en/tutorials/file/dndfiles/

还可以看看https://electronjs.org/ 它允许你在你的“native”-like react 应用程序中使用像 fs 这样的 nodejs API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 2022-08-21
    • 1970-01-01
    相关资源
    最近更新 更多