Привет всем Я новичок в node.js и пн goose. Моя повестка дня - отправить данные формы HTML и загрузить файл на node.js одновременно. Я хочу сохранить изображение в Cloudinary. Как только данные достигли сервера. Мне нужно сохранить данные формы и URL изображения и publi c URL ID в пн goose. Потому что я буду использовать этот URL-адрес изображения для отображения изображения в передней части и опубликовать идентификатор URL c для удаления изображения в Cloudinary. Но я упомянул точный идентификатор поля в node.js, хотя я получаю неопределенное значение в Nodejs. Может кто-нибудь мне помочь? Заранее спасибо ... Я приложил код ниже.
.js file:
const express = require('express');
const multer = require('multer');
const cloudinary = require('cloudinary');
const cloudinaryStorage = require('multer-storage-cloudinary');
const path = require('path');
const router = express.Router();
cloudinary.config({
cloud_name: "xyz",
api_key: "kxyz",
api_secret: "xyz"
});
const storage = cloudinaryStorage({
cloudinary: cloudinary,
folder: "tutorialImages",
allowedFormats: ["jpg", "png"],
transformation: [{ width: 1500, height: 500, crop: "limit" }]
});
const parser = multer({ storage: storage });
router.post('/create',parser.single("file"),(req, res) => {
console.log(req.body.title); // I'm getting undefined here
console.log(req.body.body); // I'm getting undefined here
console.log("from cloudinary");
console.log(req.file) // I'm getting undefined here
const image = {};
image.url = req.file.url;
image.id = req.file.public_id;
console.log(image); // I'm getting undefined here
const newPost = new post({
title: req.body.title,
body: req.body.body,
url:image.url, // To display the image this url will be used in front end
urlId:req.file.public_id; // To delete the image from cloudinary l
});
newPost.save().then(saveData => {
res.redirect('/admin/posts');
}).catch(err => {
//res.render('admin/posts/create',{error:err.errors});
console.log(err);
});
});
module.exports = router;
.handlebars file:
<form action="/admin/posts/create" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="title">Title</label>
<input type="text" value="{{title}}" name="title" id="title" class="form-control" placeholder="Enter Title">
</div>
<div class="form-group">
<label for="file">File Upload</label>
<input type="file" name="file" id="file" class="form-control">
</div>
<div class="form-group">
<label for="body">Description</label>
<textarea cols="30" rows="10" name="body" id="body" class="form-control" placeholder="Enter description"
wrap="virtual">{{body}}</textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>