如何在nodejs-express中将函数传递给快速车把?

时间:2019-05-31 17:28:42

标签: javascript node.js function express express-handlebars

我试图在Express-Handlebar中传递一个函数,  但它不起作用。 我将app.js用作服务器文件,并将index.handlebars用作车把文件。

app.js

const express=require('express');
const app=express();
const csc=require('countrycitystatejson');
const exphbs=require('express-handlebars');
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');

// console.log(csc.getAll());

function hello(){
  console.log('hello');
}

app.get('/', function (req, res) {
    res.render('index',{
      hello:hello
    });
});

 app.listen(3000);

index.handlebars

<button onclick="hello()">click</button>

1 个答案:

答案 0 :(得分:0)

最好为此创建一个助手。在一个示例下面,并参考Github以获得有关该主题的更多信息。

const express=require('express');
const app=express();
const csc=require('countrycitystatejson');
const exphbs=require('express-handlebars');

var hbs = exphbs.create({
    helpers: {
        hello: function () { console.log('hello'); }
    }
});

app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

// console.log(csc.getAll());

app.get('/', function (req, res) {
    res.render('index');
});


app.listen(3000);

index.handlebars

<button onclick="{{hello}}">click</button>