Я работаю над приложением, в котором пользователь вводит данные через форму. Пользователь также может добавить вложение (pdf-файл) с формой
Что я сделал, так это сохранил пользовательские данные в коллекции 'request' и вложение в формате PDF в коллекции «загрузки». Проблема заключается в том, что при отображении сведений о форме, отправленных пользователем, я не могу отобразить файл, загруженный во время этой конкретной формы, и отобразить его пользователю. (Я имею в виду, что пользователь может отправить несколько запросов и загрузить файл. Каждый запрос имеет уникальное вложение). Как я могу этого добиться? Это то, чего я достиг до сих пор
Схема
const requestSchema = {
from: String,//
rollno: String,
date: Date,
purpose: String,
to: [String],
email: String,
description: String,
duration: String,
source:{ data:Buffer,contentType:String},
current_status: [String],
};
Приложение. js
.post(upload.single('file'),
function(req, res) {
const newRequest = new Request({
purpose: req.body.purpose,
from: req.body.from,
rollno: req.body.rollno,
date: req.body.date,
to: req.body.part,
email: req.body.email,
description: req.body.description,
duration: req.body.duration,
source:req.file,
current_status: req.body.status
});
Маршрут панели управления
app.get("/dashboard", function(req, res) {
gfs.files.find().toArray((err, files) => {
// Check if files
if (!files || files.length === 0) {
request("http://localhost:3000/requests/B190257EP", function(error, response, body) {
var data = JSON.parse(body);
console.log(data);
res.render("dashboard", {
username: req.user.displayName,
posts: data,
files:false
});
});
// res.render('uploads', { files: false });
} else {
files.map(file => {
if (
file.contentType === 'image/jpeg' ||
file.contentType === 'image/png'
) {
file.isImage = true;
} else {
file.isImage = false;
}
});
request("http://localhost:3000/requests/B199999LS", function(error, response, body) {
var data = JSON.parse(body);
console.log(data);
res.render("dashboard", {
username: req.user.displayName,
posts: data,
files:files
});
});
}
});
Здесь загруженный файл повторяется в каждом запросе. Должно быть так, как первый файл соответствует первому запросу, второй файл для второго
Я думаю, что если я смогу сохранить objectID вместе с запросом, я смогу добиться этого, но как это будет сделано? Спасибо