我正在使用Node.js + Express开发一个站点,并使用Hogan.js作为视图引擎。
这是我的文件app.js
:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'hjs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('less-middleware')({ src: __dirname + '/public' }));
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
app.get('/about', routes.about);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
该文件/routes/index.js
是:
/*
* GET pages.
*/
exports.index = function(req, res){
res.render(
'index',
{
title: 'Home Page',
author: 'Bruce Wayne'
}
);
};
exports.about = function(req, res){
res.render(
'about',
{
title: 'About Page',
author: 'Bruce Wayne'
}
);
};
在/views
文件夹中,有:
|- part.hjs
|- index.hjs
|- cv.hjs
该文件part.hjs
是:
<h3>Hello {{ author }}</h3>
该文件index.hjs
是:
<h1>Title: {{ title }} </h1>
{{> part }}
Welcome to Gotham City.
文件about.hjs
是:
<h1>Title: {{ title }}</h1>
{{> part }}
I'm not Joker.
我有两个问题:
/routes/index.js
吗?最好的问候,六。
我找到了第一个问题的解决方案。
首先,我删除了hjs
:
npm remove hjs
然后,我安装了软件包hogan-express
:
npm install hogan-express
此外,我编辑了app.js
:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
app.engine('html', require('hogan-express'));
app.enable('view cache');
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'html');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('less-middleware')({ src: __dirname + '/public' }));
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
和routes/index.js
:
exports.index = function(req, res) {
res.locals = {
title: 'Title',
};
return res.render(
'index',
{
partials:
{
part: 'part',
}
}
);
};
现在,/views
有index.html
,part.html
。该文件part.html
包含:
<h1>{{ title }}</h1>
该文件index.html
包含:
{{> part}}
Hello world!
因此,它工作正常。
来自 Twitter 的 JavaScript 模板引擎。 示例代码: var data = { screenName: "dhg",};var template = Hogan.compile("Follow @{{screenName}}.");var output = template.render(data);// prints "Follow @dhg."console.log(output);
问题内容: 我正在尝试使用Handlebars.js作为服务器模板引擎,使用Node.js | Express创建一个简单的HelloWorld项目。 问题是我找不到使用此类链的任何示例,尤其是在使用多视图时。 例如,我想定义标题视图: 并将其与其他视图一起用于每个页面。 也许我在以错误的方式考虑这些视图,我认为该视图是一种控件,可以在任何其他视图内的任何页面上重用。 我感谢我可以从中获得的指向教
本文向大家介绍angular2+node.js express打包部署的实战,包括了angular2+node.js express打包部署的实战的使用技巧和注意事项,需要的朋友参考一下 Angular2我自己还在摸索学习中,本文介绍了angular2+node.js express打包部署的实战,分享给大家,也给自己留个笔记 angular是客户端js,Node.js 是服务端JS,建立SPA
Node.js Express 框架 Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。 Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模
Express 简介 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。 使用 Express 可以快速地搭建一个完整功能的网站。 Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML 页面。
问题内容: 是否可以在 没有 任何模板引擎的 情况下 使用express ? 问题答案: 更新 有些人可能担心sendFile仅提供客户端缓存。有多种方法有服务器端缓存,并与OP的问题,一个保持直列可以发送回只是文字太发送: 以下是3年前的原始答案: 对于正在寻找PavingWays替代答案的任何人,也可以这样做: 无需写: