我正在构建一个MEAN应用程序,该应用程序将使用RESTful API,而我目前正致力于客户端工作。我使用把手作为视图引擎,所以我可以渲染表达式等,但我遇到的问题是表达式没有被渲染。
作为一个起点,我使用Passport在应用程序中构建了简单的用户身份验证,该工作正常。注册/登录工作正常,我可以通过确保用户同时登录并且是管理员来保护我的应用程序中的PUT / POST / DELETE API请求。我现在遇到的问题是呈现表达式......
我试图开始工作的正则表达式是{{user.username}}
,但无论我尝试什么,它都无法正常工作。
查看引擎:(app.js)
var hbs;
hbs = exphbs.create({
extname: '.hbs',
defaultLayout: 'layout',
layoutsDir: './app/views/layouts',
partialsDir: './app/views/partials'
});
app.engine('hbs', hbs.engine);
app.set('view engine', 'hbs');
app.set('views', __dirname + '/app/views');
路线:( app.js)
app.get('/admin', Auth.ensureAdmin, function (req, res) {
res.render('admin');
});
Auth.ensureAdmin(authentication.js)
exports.ensureAdmin = function ensureAdmin (req, res, next) {
if (req.user && req.user.admin === true)
next();
else
res.send(403);
};
admin.hbs(观点)
<h1>Welcome, {{user.username}}</h1>
users.js(mongoose schema)
var (dependencies)
...
var UserSchema = new Schema({
username: { type: String, required: true, unique: true },
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
admin: { type: Boolean, required: true }
});
...
var userModel = mongoose.model('Users', UserSchema);
exports.userModel = userModel;