My req.files.foo.mv
(express-fileupload
) не перемещает файлы изображений в папку public/img
. Анализатор тела передает имя изображения и путь к нему на страницу моего сообщения (E JS <%= blogpost.image %>
), но изображения не отправляются в папку public/img
.
// index.js
const express = require('express')
const path = require('path')
const ejs = require('ejs')
const mongoose = require('mongoose')
const bodyParser = require('body-parser')
const fileUpload = require('express-fileupload')
const BlogPost = require('./models/BlogPost')
const expressSession = require('express-session')
const flash = require('connect-flash')
const app = new express()
mongoose.connect('mongodb://localhost/my_database', {useNewUrlParser:true})
app.set('view engine', 'ejs')
app.use(express.static('public'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:true}))
app.use(fileUpload())
app.use(expressSession({secret:'keyboard cat'}))
global.loggedIn = null
app.use("*", (req, res, next) =>{
loggedIn = req.session.userId
next()
});
app.use(flash());
const storeUserController = require('./controllers/storeUser')
app.post('/posts/store', authMiddleware, storePostsController)
// post store controller
const BlogPost = require('../models/BlogPost')
const path = require('path')
module.exports = (req,res) => {
let image = req.files.image
image.mv(path.resolve (__dirname, 'public/img', image.name), async (error) => {
await BlogPost.create({
...req.body,
image:'/img/' + image.name
})
res.redirect('/')
})
}