如何将 CSV 从 React 应用程序发送到 Node.js 服务器?
Posted
技术标签:
【中文标题】如何将 CSV 从 React 应用程序发送到 Node.js 服务器?【英文标题】:How can I send CSV from React app to Node.js server? 【发布时间】:2022-01-02 00:42:54 【问题描述】:在我的 React 应用程序中,我有一个 type="file" 的输入。我想在此输入中上传我的 CSV 文件并将其发送到我的 Node.js 服务器,但它不起作用。此外,还有一个问题是我的服务器只提供 6 个 uotput,然后什么也没有。我是 js 和 React 的新手,所以请详细回答;)
我的 App.js:
import './App.css';
import React, useState, useEffect from "react";
import axios from 'axios'
function App()
const [csvFile, SetCsvFile] = useState();
return (
<div className="App">
<header className="App-header">
<div>
Select file
<input type="file" name="file" onChange=e =>
SetCsvFile(e.target.files)
const formData = new FormData();
formData.append('name', "FILENAME");
formData.append('file', csvFile);
const url = 'http://localhost:8080/EXPRESSENDPOINT';
axios(
method: 'POST',
url: url,
headers:
ContentType: 'multipart/form-data'
,
body: formData
)
.then(res => console.log(res))
.catch(err => console.log(err));
/>
</div>
</header>
</div>
);
export default App;
我的 server.js
var express = require('express');
var app = express();
const bodyParser = require("body-parser");
const CsvUpload = require("express-fileupload");
app.use(CsvUpload());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded( extended: true ));
app.use('/EXPRESSENDPOINT',
(req, res, next) => console.log(req.body));
app.listen(8080, () =>
console.log('Application listening on port 8080!');
);
【问题讨论】:
【参考方案1】:我发现你的服务器有两个问题:
您的端点未返回响应,导致请求挂起 您在错误的位置检查文件。 see usage instructions of that package改为在您的路线中尝试:
app.use('/upload', (req, res, next) =>
console.log(req.files)
res.sendStatus(200)
);
注意:最好从 Node 发布日志。
【讨论】:
以上是关于如何将 CSV 从 React 应用程序发送到 Node.js 服务器?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Papa Parse 从 CSV 文件中提取数据到 React 状态?
如何将数据从我的数据库 (Firebase Firestore) 发送到我的 React Native 应用程序?
如何使用 Axios 将 CSRF Cookie 从 React 发送到 Django Rest Framework