快速问题:为什么不表达.js与dust.js一起运行? 我知道它不是官方支持的,但是dust.js甚至与我的node.js版本有问题 由于require.path问题,节点甚至不会启动。
server:testapp treejanitor$ node --version
v0.6.12
将应用引擎设置为灰尘时出现问题。 ( app.js in express)
var dust = require('dust');
...
app.set('view engine', 'dust');
我在这里显示控制台,为您提供简单的模块列表 此外,搜索相同问题的人可能会剪切/粘贴错误。
server:hummr treejanitor$ npm list
application-name@0.0.1 /Users/treejanitor/git/testapp/testapp
├── consolidate@0.3.0 extraneous
├── dust@0.3.0
├─┬ express@2.5.8
│ ├─┬ connect@1.8.7
│ │ └── formidable@1.0.9
│ ├── mime@1.2.4
│ ├── mkdirp@0.3.0
│ └── qs@0.4.2
└─┬ jade@0.25.0
├── commander@0.5.2
└── mkdirp@0.3.0
server:testapp treejanitor$ supervisor app.js
DEBUG: Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
at Function.<anonymous> (module.js:378:11)
at Object.<anonymous> (/Users/treejanitor/git/testapp/testapp/node_modules/dust/lib/server.js:6:8)
我尝试了以下尝试而没有运气:
Dust.js load template from filesystem in Node.js
注意:我尝试了快递(3.0)的alpha版本没有帮助 mergeate.js和example中的所有模块也是如此。
我对node + express + dust感兴趣的一些原因:
LinkedIn picks dustjs
Twitter's Bootstrap framework
答案 0 :(得分:4)
我曾经讨论过通过Express@3.0
模块在Node.js 0.6.x上使用consolidate.js
设置Dust.js。你可以read it here
但是,您可能希望使用LinkedIn's fork of Dust.js,它支持开箱即用的Node.js 0.6.x以及其他改进。
Consolidate.js
已经支持该分叉,但您仍然需要Express@3.0
才能工作。
答案 1 :(得分:2)
所以这就是诀窍 - 我以为我会分享我找到的东西 它需要找到这个块 - 如果你感兴趣的话,在页面中搜索dust-x。 http://nodejs.debuggable.com/2012-03-23.txt
要在快递应用中解决问题
cd node_modules
git clone git://github.com/laurie71/dust-x.git
git clone https://github.com/caolan/dustjs.git
dust.js的fork解决了node.js的require.paths问题 https://github.com/caolan/dustjs
灰尘的“包装”使其可用作模板引擎
(你仍然需要安装dust.js作为模块)
https://github.com/laurie71/dust-x
示例用法
https://gist.github.com/2174537
最重要的一点:
var dustx = require('dust-x');
...
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.register('.dust', dustx/*({})*/);
app.set('view engine', 'dust');
// app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express['static'](__dirname + '/public'));
});
顺便说一下,我想我可以手动修复其server.js中的dust.js问题,但我想给实际分配dust.js的人提供荣誉并公开提供解决方案。
特别是,我知道我的格式可能很弱。在答案中,我实际上更喜欢显示完整链接而不是指南建议的URL嵌入,因为它显示了包含网站的结构。随着站点URL被大脑吸收,它为您提供了更多机会作为下一次复飞的参考。 URL也相当短。 ; ^)非常感谢您的建议。
“控制台”的格式通常是什么?代码?
答案 2 :(得分:2)
这可能是node.js和express.js版本的一个问题。我正在使用节点v0.10.9并表达v3.0.x,它们对我很有用。 为了将dust.js与express.js和node.js集成,我发现这个github repo是一个有用的资源,可以帮助你开始: https://github.com/chovy/express-template-demo (它使用了dust.js的linkedin fork)