【问题标题】:nodejs handlebars error TypeError: this.set is not a functionnodejs车把错误TypeError:this.set不是函数
【发布时间】:2016-12-06 11:26:10
【问题描述】:

嘿,想帮助我的聪明人!

我是一个 nodejs 初学者,我想使用把手作为我的模板引擎... 这是我的第一个 nodejs 应用程序,我遵循本指南: https://www.youtube.com/watch?v=m5ribwPpIPw

我使用 cloud9 作为我的 ide..

我只有一个 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 返回布尔(this.set(设置)); ^

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) 在 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)

【问题讨论】:

    标签: javascript node.js handlebars.js


    【解决方案1】:

    修复这些行:

    app.engine('handlebars', hbs({defaultLayout: 'layout'}));
    app.set('view engine', 'handlebars');
    

    另外,将layout.hbs 更改为layout.handlerbars

    【讨论】:

    • 嘿,非常感谢你帮助我。我修复了 .hbs 但这不是问题。我知道我的模板引擎参考有问题,但它实际上与那个相同我的指南有.. 它对他有用.. 你能更具体地解决什么问题吗?
    • @GevAlter 你修复了我在回答中提到的那些行吗?
    【解决方案2】:

    仅供参考 - “express3-handlebars”已更改为“express-handlebars”。您可能想要更新它。见here。

    此外,如果您想使用 .hbs 扩展名来命名布局,也可以。

    app.engine('handlebars', hbs({ defaultLayout: 'layout' , extname: '.hbs'}));
    app.set('view engine', 'handlebars');
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2022-01-18
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 2022-01-17
      • 1970-01-01
      • 2018-06-20
      相关资源
      最近更新 更多