В настоящее время я работаю над сайтом блога на Node.js + Express + Pug + MongoDB в сочетании с другими модулями. В этом проекте я пытаюсь создать администратора и зарегистрировать его на веб-сайте (сохранить его данные в базе данных MongoDB) через форму HTML (в которой также есть изображение). Для обработки изображений я использовал «multer», который отлично работает. Когда я отправляю форму, изображение перемещается в нужный каталог, но формы никогда не отправляются, а детали никогда не сохраняются, форма просто продолжает загружаться, хотя индексы создаются в оболочке MongoDB. Я не уверен, в чем проблема. console.log (req.body) & console.log (req.file) работает отлично.
Вот файл маршрутизации (index. js)
const Admin = mongoose.model('admin');
router.get('/', function(req, res)
{
res.render('homepage', {title: "Homepage | Insomniacs.Blog"})
});
var storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './public/admins');
},
filename: function (req, file, cb) {
cb(null , file.originalname +'-' + Date.now()+path.extname(file.originalname));
}
});
const adminUpload = multer({storage: storage, limits: {fileSize: 5000000} });
router.get('/admin/newadmin', function(req, res)
{
res.render('adminregform', {title: 'Admin Registration'});
});
router.post('/admin/newadmin', adminUpload.single("cimage"), function(req, res){
console.log(req.file);
console.log(req.body);
if(!req.file && !req.body)
{
var newAdmin = new Admin({
cname: req.body.cname,
cusername: req.body.cusername,
cemail: req.body.cemail,
cpassword: req.body.cpassword,
cimage: req.file && req.file.originalname ? req.file.path : ''
});
newAdmin.save(function(err)
{
if(err)
{
console.log(err);
res.render('adminregform');
}
else
{
console.log(req.body);
console.log(req.file);
res.redirect('/admin/dashboard');
}
});
}
});