我是一个nodejs初学者,我想用把手作为我的模板引擎...... 这是我的第一个nodejs应用程序,我按照本指南操作: https://www.youtube.com/watch?v=m5ribwPpIPw
我使用cloud9作为我的想法..
我只有一个js文件,其真正的一切:
var express = require('express');
var app = express();
var hbs = require('express3-handlebars');
app.engine = ('handlebars', hbs({defaultLayout: 'layout'}));
app.set = ('view engine', 'handlebars');
app.get('/', function (req,res){
res.render('index');
});
app.use('/views',express.static('views'));
app.listen(process.env.PORT || 3000, process.env.IP || "0.0.0.0");
我正在做导游引用我做的所有事情...... this is my folder tree:
更新:这是我得到的错误..忘了把它放在这里:
/home/ubuntu/workspace/node_modules/express/lib/application.js:421 return Boolean(this.set(setting)); ^
TypeError:this.set不是函数 在EventEmitter.enabled(/home/ubuntu/workspace/node_modules/express/lib/application.js:421:23) 在EventEmitter.lazyrouter(/home/ubuntu/workspace/node_modules/express/lib/application.js:139:27) 在EventEmitter.methods.forEach.app。(匿名函数)[as get](/home/ubuntu/workspace/node_modules/express/lib/application.js:478:10) 在对象。 (/home/ubuntu/workspace/server.js:8:5) 在Module._compile(module.js:409:26) at Object.Module._extensions..js(module.js:416:10) 在Module.load(module.js:343:32) 在Function.Module._load(module.js:300:12) 在Module.runMain [as _onTimeout](module.js:441:10) 在Timer.listOnTimeout(timers.js:92:15)
答案 0 :(得分:2)
修正这些行:
app.engine('handlebars', hbs({defaultLayout: 'layout'}));
app.set('view engine', 'handlebars');
另一方面,将layout.hbs
更改为layout.handlerbars
答案 1 :(得分:0)
FYI - ' express3-handlebars'已被改为只是'快递把手'。您可能想要更新它。请参阅here。
此外,如果您想使用.hbs扩展名命名布局,则可以。
app.engine = ('handlebars', hbs({ defaultLayout: 'layout' , extname: '.hbs'}));
app.set = ('view engine', 'handlebars');