我有 nodejs 的问题,当我想用图像发帖时,我收到一条错误消息“无法读取未定义的属性‘文件名’”
我没有看到我的错误在哪里,你能告诉我吗
这是我的中间件 multer:
const multer = require('multer');
const MIME_TYPES = {
'image/jpg': 'jpg',
'image/jpeg': 'jpg',
'image/png': 'png',
'image/gif': 'gif',
};
const storage = multer.diskStorage({
destination: (req, file, callback) => {
callback(null, 'images');
},
filename: (req, file, callback) => {
const name = file.originalname.split(' ').join('_');
const extension = MIME_TYPES[file.mimetype];
callback(null, name + Date.now() + '.' + extension);
}
});
module.exports = multer({storage: storage}).single('image');
在我的 app.js
app.use('/images', express.static(path.join(__dirname, 'images')));
在我的 post.routes.js
const express = require('express');
const router = express.Router();
const auth = require('../middleware/auth');
const multer = require('../middleware/multer-config')
const postCtrl = require('../controllers/postController');
router.post('/new', auth, multer, postCtrl.createPost);
在我的 postController.js
exports.createPost = (req, res) => {
// Create post in database
console.log(req.body)
const article = {
title: req.body.title,
content: req.body.content,
userId: req.body.userId,
picture: `${req.protocol}://${req.get('host')}/images/${req.file.filename}`
};
Post.create(article)
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while creating the Article."
});
});
};