这是我的控制器文件,我试图从中上传图像到mongoDB
const bodyParser=require('body-parser');
const mongoose = require('mongoose');
const Resource = mongoose.model('Resource');
const upload = require('express-fileupload');
const path=require('path');
app.use(upload())
app.post('/fileupload',function(req,res){
var resource = new Resource();
console.log(req.files);
var file=req.files.file;
var filename=file.name;
resource.name=filename;
file.mv('./resourceFiles/'+filename);
var fpath='./resourceFiles/'+filename;
resource.filePath=fpath;
resource.save((err)=>{
if(!err){
console.log("file record")
res.redirect('ownerHome');
}
else{
console.log("error during insertion:"+ err);
}
});
})
它抛出一个错误:
TypeError:无法读取null的属性“文件” 在/Users/Nikhil/Documents/node/auction/Controllers/owner.js:73:28 在Layer.handle [作为handle_request](/Users/Nikhil/Documents/node/auction/node_modules/express/lib/router/layer.js:95:5) 在下一个(/Users/Nikhil/Documents/node/auction/node_modules/express/lib/router/route.js:137:13) 在Route.dispatch(/Users/Nikhil/Documents/node/auction/node_modules/express/lib/router/route.js:112:3) 在Layer.handle [作为handle_request](/Users/Nikhil/Documents/node/auction/node_modules/express/lib/router/layer.js:95:5) 在/Users/Nikhil/Documents/node/auction/node_modules/express/lib/router/index.js:281:22 在Function.process_params(/Users/Nikhil/Documents/node/auction/node_modules/express/lib/router/index.js:335:12) 在下一个(/Users/Nikhil/Documents/node/auction/node_modules/express/lib/router/index.js:275:10) 在Busboy。 (/Users/Nikhil/Documents/node/auction/node_modules/express-fileupload/lib/processMultipart.js:130:41) 在Busboy.emit(events.js:323:22) 在Busboy.emit(/Users/Nikhil/Documents/node/auction/node_modules/busboy/lib/main.js:37:33) 在/Users/Nikhil/Documents/node/auction/node_modules/busboy/lib/types/multipart.js:304:17 在processTicksAndRejections(internal / process / task_queues.js:79:11)
以下是我的fileupload.ejs文件:
<form method="POST" enctype="multipart/form-data">
<br>Select file:<input type="file" name="file">
<br><input type="submit" value="Upload">
</form>
答案 0 :(得分:0)
不知道到底是什么问题,但是当我在server.js(入口文件)中使用相同代码而不是控制器时,代码可以无缝工作。