сервер с node.js + express, и мне нужно загрузить img на сервер. Я пытаюсь найти некоторую информацию об этом в Google и найти multer. Теперь я хочу сохранить в БД только путь к моим изображениям. Вот как я это делаю:
const express = require('express')
const router = express.Router()
const mongoose = require('mongoose')
const multer = require('multer')
const storage = multer.diskStorage({
destination: function (req,file,cb) {
cb(null,'./uploads/')
},
filename: function(req,file,cb){
cb(null,Date.now() + '-' + file.originalname)
}
})
const fileFilter = (req,file,cb) => {
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true)
}else{
cb(null,false)
}
}
const upload = multer({storage:storage,fileFilter:fileFilter})
const Product = require('../models/products')
router.post('/',upload.single('productImage'), (req, res, next) => {
console.log(file)
const product = new Product({
_id: new mongoose.Types.ObjectId(),
name: req.body.name,
price: req.body.price,
productImage: req.file.path
})
product.save()
.then((result) => {
console.log(result)
res.status(201).json({
createdProduct: result
})
})
.catch(err => {
console.log(err)
res.status(500).json({
error: err
})
})
})
Но у меня есть ошибка: file is not defined
.Я думаю, что потерпел неудачу с productImage: req.file.path
, но я не знаю, как решить эту проблему. Можете ли вы мне помочь?