【问题标题】:fs.createReadStream is not a functionfs.createReadStream 不是函数
【发布时间】:2020-10-09 06:11:02
【问题描述】:

这是我的 sn-p:

import axios from 'axios';
import FormData from 'form-data';
var fs = require('fs');

submitCareerForm(e){
        e.preventDefault();

        let formData = new FormData();    //formdata object

        formData.append('first_name',this.state.fname);
        formData.append('last_name',this.state.lname);
        formData.append('cv', fs.createReadStream(this.state.cv));
        formData.append('email', this.state.email);
        formData.append('phone',this.state.phone);
        formData.append('details',this.state.details);
        formData.append('preferred_contact',this.state.preferredContact);

        console.log('resume ****** ',this.state.cv)

        let config = {
            method: 'post',
            url: 'https://sbtsbackend.azurewebsites.net/users/carrers',
            data : formData
        };

        axios(config)
        .then(resData => {
            console.log('result data ******** ',resData)
            if(resData.data.statusCode == 200){
                alert(resData.data.message);
            }
            this.setState({
                fname: '',
                lname: '',
                cv: '',
                address: '',
                city: '',
                state: '',
                postalcode: '',
                country: '',
                phone: '',
                email: '',
                details: '',
            });
        })
        .catch((error)=>{
            console.log('error ******* ',error)
        })

    }

我想上传文档类型 doc、docx 或 pdf。在邮递员上,api 工作正常。我该如何在这里实现?

这是我得到的错误:

【问题讨论】:

  • 你想在前端使用fs吗?
  • 如果你试图捆绑一些代码在前端运行,你不能在网络浏览器中使用fs 模块。 fs 模块使用的功能在浏览器中不存在。
  • fs 用于后端而不是前端。
  • 是的,我在前端尝试过。使用 axios 上传文档或在前端使用 formdata 获取的另一种方法是什么?
  • 你好@AnkushRishi,你能解决吗?请帮我。我仍然有这个问题。找不到任何解决方案。

标签: javascript node.js reactjs fs


【解决方案1】:

Node.js 的 fs 模块仅适用于服务器端应用程序。当您在客户端应用程序的 Web 浏览器中使用它时,它会抛出错误。

【讨论】:

  • 从前端发送数据以上传文档的其他可能方式是什么。我试图只发送路径但没有用。像这样:formData.append('cv', this.state.cv);
  • 我建议查看 HTML 文件输入元素。这是一个我认为对你非常有用的教程:programmingwithmosh.com/javascript/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 2017-08-31
相关资源
最近更新 更多