Я застрял. Я думал, что моя цель будет прямой, но мне не хватает какой-то ключевой части. Я пытаюсь создать сайт, который может принимать файл JSON от конечного пользователя. После того, как файл будет предоставлен, я хочу объединить эти данные с данными из веб-ресурса, а затем взять полученный сглаженный JSON и записать его в таблицу базы данных. Первый прототип проекта был построен на одной HTML странице с некоторыми JavaScript, и мне удалось получить результат так, как я хотел. Затем я попытался преобразовать его в сервер node.js, чтобы использовать API для записи результирующего JSON на сервер SQL. Хотя проблема, с которой я обращаюсь за помощью, не связана с этими шагами, я просто хотел поделиться, что есть некоторые сложности asyn c, которые могут быть мутными. Я попытался создать страницу HTML, которая принимает файл, и с помощью express попытался захватить этот файл, но я не могу найти правильную комбинацию промежуточного программного обеспечения и другого кода для загрузки файла JSON в объект, чтобы я мог передать его в свою существующую функцию, чтобы манипулировать им, а затем передать его в функцию, чтобы записать его в SQL с помощью хранимой процедуры. Итак, вот что у меня есть для моего индекса. js
const express = require("express");
const app = express();
const fileUpload = require('express-fileupload');
const bodyParser = require("body-parser");
const path = require("path");
app.use(express.urlencoded({
extended: false
}));
app.use(express.json());
app.use(fileUpload());
app.post('/upload', function(req, res) {
if (!req.files || Object.keys(req.files).length === 0) {
return res.status(400).send('No files were uploaded.');
}
let jsonFile = req.body.sampleFile;
console.log(jsonFile);
let parsed = JSON.parse(jsonFile);
console.log
res.send("blank page");
});
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname + '/minimalIndex.html'));
});
const webserver = app.listen(5000, function() {
console.log('Express web server is running..');
});
и HTML, который он использует, это
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Static Index.html</title>
</head>
<body>
<form ref='uploadForm' id='uploadForm' action='/upload' method='post' encType="multipart/form-data">
<input type="file" name="sampleFile" />
<input type='submit' value='Upload!' />
</form>
</body>
</html>
В файле console.log отображается значение undefined. Сбой JSON Parse из-за неверной строки JSON. Мне удалось сохранить файл локально, но это кажется ненужным. Может кто-нибудь сказать, что мне не хватает?