使用Axios.post()从本地文件获取值

时间:2019-12-08 14:44:36

标签: reactjs authentication axios

我正在使用React登录。我在一个组件中使用Axios.post('/api/users/login', value)。现在,我想将userNamepassWord存储在文件中,并使用Axios从本地文件中获取值。我想让用户登录以获取固定的用户名和密码。

是否可以使用Axios.post()从本地文件获取值?

2 个答案:

答案 0 :(得分:1)

当我尝试过时,它不起作用,但是我认为您应该尝试使用node.js的fs本机模块,该模块可以访问文件系统。

答案 1 :(得分:1)

您可以使用本机JavaScript FileReader在浏览器中读取它,然后根据需要进行处理/操作。在这种情况下,文件内容如下credentials.txt

userName: email@domain.com
passWord: yourpassword

JSX

<input type="file" onChange={this.openFile.bind(this)} />

onChange处理程序

openFile(event) {
    var input = event.target;
    var reader = new FileReader();
    reader.onload = () => {
      const arr = reader.result.split(/\r?\n/);
      this.login({
        userName: arr[0].split(":")[1],
        passWord: arr[1].split(":")[1]
      });
    };
    reader.readAsText(input.files[0]);
}

登录方法

login(loginObj) {
    // make api calls
    axios.post("/api/users/login", loginObj).then(resp => {
      // do your stuff
    });
  }

代码沙箱https://codesandbox.io/s/crazy-feynman-vjtxo

干杯!