Javascript 无法读取属性';管理员';未定义的

Javascript 无法读取属性';管理员';未定义的,javascript,node.js,express,Javascript,Node.js,Express,我有这个问题的时候,我在管理路线,我试图添加一个新的文章或一个新的形象在我的数据库,同样的事情发生,即使当我想更新的东西。。。。 这是我的密码 exports.isAdmin = (req, res, next) => { if (req.isAuthenticated() && res.locals.user.admin == 1) { next(); } else { req.flash("danger", "pleas

我有这个问题的时候,我在管理路线,我试图添加一个新的文章或一个新的形象在我的数据库,同样的事情发生,即使当我想更新的东西。。。。 这是我的密码

exports.isAdmin = (req, res, next) => {

    if (req.isAuthenticated() && res.locals.user.admin == 1) {
        next();
    } else {
        req.flash("danger", "please log in as admin");
        res.redirect("/users/login");
    }
}

var LocalStrategy = require("passport-local").Strategy;
var User = require("../models/user");
var bcrypt = require("bcryptjs");


module.exports = function (passport) {

    passport.use(new LocalStrategy(function (username, password, done) {

        User.findOne({ username: username }, function (err, user) {
            if (err)
                console.log(err);

            if (!user) {
                return done(null, false, { message: "No user found" });
            }

            bcrypt.compare(password, user.password, function (err, isMatch) {
                if (err) console.log(err);

                if (isMatch) {
                    return done(null, user);
                } else {
                    return done(null, false, { message: "Wrong password" });
                }
            })
        });

    }));

    passport.serializeUser(function (user, done) {
        done(null, user.id);
    });
    passport.deserializeUser(function (id, done) {
        User.findById(id, function (err, user) {
            done(err, user);
        });
    });
}

任何人都可以帮助解决这个问题:我在res.locals.user.admin中思考,但在其他管理路径中也可以,但只有当我想添加一个新的和编辑一个思考时,这个问题才会发生。log(res.locals)显然没有
user
属性,所以,当你寻找它的时候,找出它应该放在哪里以及为什么不在那里。大概有一些中间软件,你希望设置这个。我猜更可能是
req.locals
。问题只存在于router.post中,我使用了中间件,该路由中的res.locals为空,我从post路由中删除了中间件,现在可以了,但我如何使用中间件创建post路由,以便只有管理员才能创建新路由?