Я должен отправить файл .rar из браузера (реагировать-js).Затем мне нужно получить этот файл на стороне сервера (express-js), чтобы я мог выполнять над ним дальнейшие операции.Может ли кто-нибудь помочь мне с этим?
Я попытался использовать Multer (но я думаю, вот для загрузки файла).Я попытался использовать промежуточное ПО bodyParser из json и urlencoded, но они не обрабатывают мой запрос дальше и не передают его контроллеру.
На стороне клиента
sendData = () => {
const data = new FormData();
const { fileSelected, fileSelectedName } = this.state;
data.append('file', fileSelected);
if (fileSelectedName === 'THERM0001.rar') {
fetch('http://localhost:3001/thermometer/postReadings', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
// body: JSON.stringify({
// data: fileSelected,
// name: fileSelectedName
// })
body: data
})
.then(res => res.json())
.then(resp => alert(resp.message));
}
else {
alert(`There is no need for manual entry for ${fileSelectedName}.json`);
}
}
На стороне сервера:
import express from 'express';
import mongoose from 'mongoose';
import bodyParser from 'body-parser';
import cors from 'cors';
import router from './routes';
const app = express();
const port = 3001;
const mongoDB = 'mongodb://127.0.0.1/thermometer';
mongoose.connect(mongoDB, { useNewUrlParser: true });
let db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
app.use(bodyParser.json({limit: '50mb', extended: true}));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
app.use(cors());
app.use('/thermometer/', router);
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
SyntaxError: Неожиданный токен - в JSON в позиции 0 в JSON.parse () в createStrictSyntaxError (/Users/aditmodi/Desktop/thermometer-server/node_modules/body-parser/lib/types/json.js: 158: 10) при разборе (/Users/aditmodi/Desktop/thermometer-server/node_modules/body-parser/lib/types/json.js:83:15) в / Users / aditmodi / Desktop / thermometer-server / node_modules/body-parser/lib/read.js:121:18 at invokeCallback (/Users/aditmodi/Desktop/thermometer-server/node_modules/raw-body/index.js:224:16) at done (/ Users / aditmodi /Рабочий стол / сервер термометров / node_modules / raw-body / index.js: 213: 7) в IncomingMessage.onEnd (/Users/aditmodi/Desktop/thermometer-server/node_modules/raw-body/index.js:273:7)в IncomingMessage.emit (events.js: 197: 13) в endReadableNT (_stream_readable.js: 1129: 12) вprocessTicksAndRejected (внутренняя / process / next_tick.js: 76: 17)