我正在开发一个带有node / angular和jade的单页Web应用程序。我对angular很新,我想知道我的app.js文件是如何处理的,这样我的第一个页面模板就可以从我的角度文件加载,而不是从我的jade模板加载。
我按原样构建了我的文件:
public/
index.html
javascript/
img/
stylesheets/
routes/
index.js
views/
partials/
a.jade
b.jade
app.js
这就是我的app.js的样子:
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.cookieParser('cookies monster')); // Cookie secret
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
/*
* Views
*/
app.get('/', routes.index);
app.get('/a', routes.a);
app.get('/b', routes.b);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
我的index.js看起来像这样:
exports.index = function(req, res){
res.render('index', { title: 'Test Application' });
};
// View A
exports.a = function(req, res) {
res.render('partials/a', { layout: false, test: 'LOL' });
};
// View B
exports.b = function(req, res) {
res.render('partials/b', { layout: false, test: 'YOLO' });
};
当我运行它时,它不会将index.html用作第一页。我将如何这样做,以便初始页面模板实际上是index.html?我似乎无法在任何地方找到答案。
答案 0 :(得分:2)
您可以从路由器返回实际的index.html文件。
app.get('/', function(req, res, next){
return res.sendfile(app.get('public') + '/index.html');
});
我应该注意,我还将app.set('public', path.join(__dirname, 'public'));
放在app.js中,以便于访问公共目录。