TypeError:无法读取null的属性“文件”

时间:2020-05-15 14:49:45

标签: node.js mongodb express

这是我的控制器文件,我试图从中上传图像到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>

1 个答案:

答案 0 :(得分:0)

不知道到底是什么问题,但是当我在server.js(入口文件)中使用相同代码而不是控制器时,代码可以无缝工作。