fs.writeFile在我的ReactJs / NodeJs应用程序上不起作用

时间:2019-03-22 14:10:51

标签: node.js reactjs

我正在尝试使用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 |             }

2 个答案:

答案 0 :(得分:1)

fs在浏览器中不起作用。这是设计使然。 fs已被存出,请参见this ticket

使用支持browserifybrowserFS之类的浏览器的程序包会更好一些

答案 1 :(得分:0)

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

也请看一下https://electronjs.org/,它允许您在类似“本机”的react应用中使用像fs这样的nodejs API。