我需要在 React 中上传一个文件,然后将其发送到 Express 服务器(我是 Express 的新手,所以对我来说很难),
我成功地在我的 React 组件中上传了文件,但现在我不知道如何将它发送到我用 Express 制作的后端服务器。
我需要使用什么?Axios 还是 Fetch?获取还是发布?谢谢 !
我的 App.js 文件(前端)
uploadFile = () => {
const { currentFileName, currentFileType } = this.state;
if (currentFileName && currentFileType) {
fetch('http://localhost:5000/upload/files', {
method: "POST",
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify(this.state)
})
.then((res) => res.json())
.then(res => {
this.setState({
errorMessage: "",
successMessage: `Votre fichier ${currentFileName} a bien été uploadé !`
});
console.log(res);
console.log(res.data);
})
} else {
this.setState({
errorMessage: "Veuillez choisir un fichier avant d'appuyer sur le bouton Upload !"
});
}
}
和我的 server.js 文件(后端)
const express = require('express');
const app = express();
const router = express.Router();
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', 'http://localhost:3000');
res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
next();
});
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.post('/upload/files', (req, res) => {
var fileName = req.body.currentFileName;
var fileType = req.body.currentFileType;
console.log('Nom du fichier: ' + fileName + ' ' + 'Type du fichier: ' + fileType);
res.send(fileName + fileType);
});
const port = 5000;
app.listen(port, () => `Server running on port ${port}`);
我希望在 localhost:5000/upload/files 中获取状态数据,但是当我访问 URL 时,我收到消息“无法获取 /upload/files”
有人能帮助我吗 ?谢谢 !