最简单的node.js + nunjucks例子
可能不会使用node.js和Nunjucks进行任何实际的开发,但是现在由于某种原因需要:
- 预编译一些简单的模板与
Nunjucks
JavaScript - 运行
node.js
下的预编译模板
我已经做好了:
- 安装
node.js
和npm
(例如有node
和npm
命令) -
mkdir njtest && cd njtest
- 安装nunjucks
npm install nunjucks
(有一个node_modules/nunjucks
目录) -
mkdir templates
-
在模板中,我创build了两个文件
index.html
和layout.html
与以下jinja2/nunjucks
内容 -
layout.html
<!doctype html> <head> <title>simple example</title> </head> <body> <h1>Simple example</h1> {% block body %}{% endblock %} </body>
-
index.html
{% extends "layout.html" %} {% block body %} hello world {% endblock %}
- 我预编了模板
./node_modules/nunjucks/bin/precompile templates >templates.js
和在templates.js
我有预编译的代码。
接下来我应to do
来获得一个正在运行的Web服务器什么将使用预编译的template.js
?
请不要search任何先进的东西来抛出这个问题。 对于了解node和javascript的人来说,这可能是一个愚蠢的简单问题。
我知道,将需要创build一个文件让说app.js
和需要运行它的node
– 但应包含?
require 'nunjucks';
可能是这样的: var res = nunjucks.render('templates.js');
还有什么? (最简单的(一次)解决scheme)。 注意:要使用Nunjucks服务器端,而不是在浏览器中。
从初始化Node应用程序开始,如下所示:
cd njtest npm init
你可以点击“回车”接受大多数问题的默认设置,如果你在创buildapp.js之后这样做,那么它会自动检测到这个问题,并将其用作简单服务器的入口点。
安装快车:
npm install express --save
然后创buildapp.js
,如下所示:
var express = require( 'express' ), app = express(), nunjucks = require( 'nunjucks' ) ; // Define port to run server on var port = process.env.PORT || 9000 ; // Configure Nunjucks var _templates = process.env.NODE_PATH ? process.env.NODE_PATH + '/templates' : 'templates' ; nunjucks.configure( _templates, { autoescape: true, cache: false, express: app } ) ; // Set Nunjucks as rendering engine for pages with .html suffix app.engine( 'html', nunjucks.render ) ; app.set( 'view engine', 'html' ) ; // Respond to all GET requests by rendering relevant page using Nunjucks app.get( '/:page', function( req, res ) { res.render( req.params.page ) ; } ) ; // Start server app.listen( port ) ; console.log( 'Listening on port %s...', port ) ;
现在启动一个浏览器,去http:// localhost:9000然后popup你的页面!
希望有帮助…