如何在带有节点的angularJS页面中加载

时间:2014-01-13 04:27:37

标签: node.js angularjs express pug

我正在开发一个带有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?我似乎无法在任何地方找到答案。

1 个答案:

答案 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中,以便于访问公共目录。