我正在使用带有multer的nodejs来创建上传到我的shopDB mongo DB的图像文件 当我上传图像文件并从表单中发布数据时...表单中的所有内容都保存在数据库中,但是imagename显示为空,并且图像未存储在文件路径中
保存表单数据时控制台中没有出现任何错误 除文件上传外,该应用程序运行正常
这就是表单中的上传方式
<div id="img">
<input type='file' name="uploadpostfile">
</div>
这是我的APP.JS
const express = require("express");
const router = express.Router();
const multer = require('multer');
const path = require("path");
const Post = require('./models/postup');
const uploadPath = path.join("public",Post.postImgPath);
const bodyParser = require("body-parser");
const imageMimeTypes = ["images/jpeg","images/png","images/gif"]
const upload = multer({
dest: uploadPath,fileFilter: (req,file,callback) => {
callback(null,imageMimeTypes.includes(file.mimetype) )
}
})
const request = require("request");
const ejs = require("ejs");
require('./models/postup')
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost:27017/shopDB");
const db = mongoose.connection
db.on('error',error => console.error(error))
db.once('open',() => console.log('Connected to Mongoose',{useNewUrlParser: true},{ useUnifiedTopology: true}))
const app = express();
app.set('view engine','ejs');
app.use(express.static("public"));
app.use(bodyParser.urlencoded({
extended:true
}));
app.use(bodyParser.json());
app.post("/npost",multer(upload).single("uploadpostfile"),(req,res) => {
let fileName = req.file != null ? req.file.filename : null
let post = new Post({
tag: req.body.taginput,title: req.body.posttitle,link: req.body.extlink,text1: req.body.textsmall,text2: req.body.textmedium,text3: req.body.textlarge,imgname: fileName
})
post.save((err,doc) => {
if (!err)
res.redirect('editor');
else {
console.log('Error' +err )
}
})
})
app.get('/',res) => {
res.render('index');
});
app.get('/editor',res) => {
res.render('editor');
});
app.listen(3000,function(){
console.log("Server on 3000");
})