你可以肯定地做到这一点与node.js.首先,建立一个HTML模板引擎,例如痛饮,(但你可以使用别人),并配置标准的选项来渲染HTML页面:
var swig = require('swig');
app.set('view engine', 'html');
app.set('view options', {
layout: false
});
app.engine('html', swig.renderFile);
app.set('view cache', false);
// To disable Swig's cache, do the following:
swig.setDefaults({ cache: false });
app.use(express.static(__dirname + '/public'));
其次设置了供应的主HTML页面的端点。
app.get('/',function(req, res) {
res.render('index');
};
然后您可以创建Node.js的终点,这将让您的数据:
app.get('/users', function(req, res) {
// Do database stuff here
res.status(200).send(results);
}
然后设置您的HTML文件:
<!DOCTYPE html>
<html ng-app="app">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="stylesheets/bootstrap.min.css" rel="stylesheet">
<title>fast MEAN</title>
</head>
<body ng-controller="MainController">
<div class="col-md-12" style="background-color: #006699">
</div>
{% raw %}
{{helloWorld}}
<ng-view></ng-view>
<script src="js/angular.min.js"></script>
<script src="js/angular-route.min.js"></script>
<script src="app.js"></script>
{% endraw %}
</body>
</html>
当外界的一切{%原料%}和{%endraw%}将使用node/swig模板数据进行数据呈现,并且这些标记中的所有内容都可以使用您正在使用的任何框架(jQuery,angular,react等)来呈现。
这个简单的单页面应用程序的一个例子是在我的github上,有一个角度版本和一个反应版本。希望有所帮助。
https://github.com/coguy450/fastMEAN