Неверный путь при загрузке картинки на сервер - PullRequest
0 голосов
/ 10 июня 2018

сервер с 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, но я не знаю, как решить эту проблему. Можете ли вы мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...