Я хочу сохранить загруженную фотографию в mongodb, используя hapi.js.Но я могу загрузить фотографию в папку для загрузки, но я не смог сохранить ее в базе данных.Это код:
server.route({
method: 'POST',
path: '/upload',
config: {
payload: {
output: "stream",
parse: true,
allow: "multipart/form-data",
maxBytes: 2 * 1000 * 1000
}
},
handler: async (req, h) => {
const response1 = handleFileUpload(req.payload.image);
console.log(response1);
return response1;
}
});
const handleFileUpload = file => {
return new Promise((resolve, reject) => {
const filename = file.hapi.filename
const data = file._data
fs.writeFile(`./uploads/${filename}`, data, err => {
if (err) {
reject(err)
}
resolve({
message: 'Upload successfully!',
imageUrl: `${server.info.uri}/uploads/${filename}`
})
})
})
}
Поскольку он отправляет ответное сообщение и imageUrl.Я должен сохранить этот imageurl на БД, но я не знаю, как получить доступ к нему из возврата обещания.Я очень новый, чтобы обещать.это моя модель схемы:
const stuSchema = new Schema({
image : String,
});
html:
<form method="post" action="/upload" enctype="multipart/form-data">
<label for="image">Image Upoahhd</label>
<input name="image" type="file" required >
<br><br>
<input type="submit" value="Login">
</form>
Я не знаю, как сохранить значение req.payload.image в базе данных.Я хотел сделать это следующим образом для метода обработчик :
const user = new User (imageUrl);
const sav = user.save();
return h.response(sav)
Но я хотел написать их в функции распознавателя, но он принимает объекты