Javascript 快速文件上载图像上载不工作

Javascript 快速文件上载图像上载不工作,javascript,node.js,express,file-upload,Javascript,Node.js,Express,File Upload,因此,我试图允许用户上传该配置文件的配置文件图像,我现在得到了我想要的表单,但我一直遇到一个错误,称为TypeError:无法读取未定义的属性“profilePicUpload” 尽管我几乎可以肯定我所有的代码都很好,但这里的routes.js // app/routes.js var mysql = require('mysql'); var dbconfig = require('../config/database'); var connection = m

因此,我试图允许用户上传该配置文件的配置文件图像,我现在得到了我想要的表单,但我一直遇到一个错误,称为TypeError:无法读取未定义的属性“profilePicUpload”

尽管我几乎可以肯定我所有的代码都很好,但这里的routes.js

    // app/routes.js
    var mysql = require('mysql');
    var dbconfig = require('../config/database');
    var connection = mysql.createConnection(dbconfig.connection);
    const fileUpload = require('express-fileupload');

    module.exports = function(app, passport) {

        app.get('/logout', function(req, res) {
            req.logout();
            res.redirect('/');
        });
        // =====================================
        // HOME PAGE (with login links) ========
        // =====================================
        app.get('/', function(req, res) {
            res.render('login.ejs', { message: req.flash('loginMessage') }); // load the index.ejs file
        });

        // =====================================
        // LOGIN ===============================
        // =====================================
        // show the login form
        app.get('/login', function(req, res) {

            // render the page and pass in any flash data if it exists
            res.render('login.ejs', { message: req.flash('loginMessage') });
        });


        app.use(fileUpload());

       app.post('/upload', function(req, res) {
         console.log(req.files.profilePicUpload);
       });



        passport.serializeUser(function(user, done) {
            done(null, user.id);
        });


        passport.deserializeUser(function(id, done) {
            User.findById(id, function(err, user) {
                done(err, user);
            });
        });
        // process the login form
        app.post('/login', passport.authenticate('local-login', {
                successRedirect: '/mainchat', // redirect to the secure profile section
                failureRedirect: '/login', // redirect back to the signup page if there is an error
                failureFlash: true // allow flash messages
            }),
            function(req, res) {
                console.log("hello");

                if (req.body.remember) {
                    req.session.cookie.maxAge = 1000 * 60 * 3;
                } else {
                    req.session.cookie.expires = false;
                }
                res.redirect('/');
            });

        // =====================================
        // SIGNUP ==============================
        // =====================================
        // show the signup form
        app.get('/signup', function(req, res) {
            // render the page and pass in any flash data if it exists
            res.render('signup.ejs', { message: req.flash('signupMessage') });
        });

        // process the signup form
        app.post('/signup', passport.authenticate('local-signup', {
            successRedirect: '/mainchat', // redirect to the secure profile section
            failureRedirect: '/signup', // redirect back to the signup page if there is an error
            failureFlash: true // allow flash messages
        }));

        // =====================================
        // PROFILE SECTION =========================
        // =====================================
        // we will want this protected so you have to be logged in to visit
        // we will use route middleware to verify this (the isLoggedIn function)
        app.get('/profile', isLoggedIn, function(req, res) {
            var aboutUser = connection.query("SELECT about FROM users WHERE username = ?", req.user, function(err, rows) {
                res.render('profile.ejs', {
                    user: req.user,
                    about: rows
                });
            });
        });

        app.get('/mainchat', isLoggedIn, function(req, res) {
            var username = req.user.displayName;
            res.render('mainchat.ejs', username);
            console.log(req.user.displayName)
        });
        // =====================================
        // LOGOUT ============================= rows.forEach(function(row) {=
        // =====================================
        app.get('/logout', function(req, res) {
            req.logout();
            res.redirect('/');
        });



    };

    // route middleware to make sure
    function isLoggedIn(req, res, next) {

        // if user is authenticated in the session, carry on
        if (req.isAuthenticated())
            return next();

        // if they aren't redirect them to the home page
        res.redirect('/');
    }
这是我的上传表格

            <form id="form" action="/upload" method="POST">
                <div class="fileUpload" id="profile-picture-upload">

                    <input name="profilePictureToUpload" type="file" id="profile-picture-upload" class="upload" />
                </div>
                <input type="submit" name="profilePicUpload" id="upload-profilePic-button"></input>
            </form>

当我按enter键时,它只显示我上面说的错误?有人能帮我打印出req.文件的内容吗。ie console.logreq.files; 您应该改用req.files.profilePictureToUpload吗?与req.files.profilePicUpload相反

如果没有看到属性,则可能是文件内容没有正确附加到请求对象上的问题

此外,您不需要全局地将文件上载应用到正在使用的每个路由。只需将其用于实际上载的端点:

   app.post('/upload', fileUpload(), function(req, res) {
     console.log(req.files.profilePicUpload);
   });