我的req.files.foo.mv
(express-fileupload
)没有将图像文件移动到public/img
文件夹中。正文解析器正在将图像名称和图像路径传递到我的帖子页面(EJS <%= 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('/')
})
}
答案 0 :(得分:0)
我还没有尝试过express-fileupload,但是我确信multer可以做到这一点。 https://www.npmjs.com/package/multer
答案 1 :(得分:0)