我使用 ExpressJS 和普通的 HTML 模板(没有 Jade 或类似的模板引擎)。由于我即将将 MongoDB 添加到我的应用程序中,因此我需要将数据注入到我的 HTML 文件中。我知道当我使用 Jade 或类似的模板引擎时没有问题。是否可以不使用 Jade 直接将其注入到我的 HTML 文件中?如果没有,是否可以使用 Jade 并仍然拥有我的 HTML 文件?
这是我的 app.js:
var express = require('express');
var server = express.createServer();
server.configure(function () {
server.use('/bootstrap', express.static(__dirname + '/bootstrap'));
server.use('/css', express.static(__dirname + '/css'));
server.use('/js', express.static(__dirname + '/js'));
server.use(express.static(__dirname + '/html'));
});
server.set('views', __dirname + '/html');
server.register('.html', require('handlebars'));
server.set('view options', { layout: false });
server.use(express.bodyParser());
server.use(express.cookieParser({ secret: "keyboard cat" }));
var memStore = require('connect').session.MemoryStore;
server.use(express.session({ secret: "keyboard cat", store: memStore( {
reapInterval: 60000 * 10
})}));
server.listen(1337);
console.log('Express server started on port %s', server.address().port);
/** SESSIONS **/
function requiresLogin(req, res, next) {
if (req.session.user) {
next();
}
else {
res.redirect('/login'); // TODO: process redirect
}
}
var pseudoUsers = require('./users');
server.get('/login', function(req, res) {
res.render('login.html');
});
server.post('/authenticated', function(req, res) {
pseudoUsers.authenticate(req.body['emailInput'], req.body['passwordInput'], function(user) {
if (user) {
req.session.user = user;
res.redirect('/dashboard');
}
else {
res.redirect('/login?wrongCredentials=true');
}
});
});
/* ROUTERS ****************/
/**************************/
server.get('/home', function(req, res) {
res.render('index.html');
});
[some more routes..]