Я хочу добавить два числа в экспресс-руль node js. Итак, я обнаружил, что могу зарегистрировать такого помощника
hbs.registerHelper('addTwoNum', function(num1, num2) {
return num1+num2;
});
Но я не знаю, где находится «hbs» для регистрации этого помощника. Обратите внимание, что я использую node js express
Когда я попробую этот метод
app.engine('hbs', handlebars({
defaultLayout: 'mainlayout',
helpers: {
getTotal: function (num1, num2){
return num1+num2;
}
}
}));
Это показывает ошибку
app.engine('hbs', handlebars({
^
TypeError: handlebars is not a function
at Object.<anonymous> (/home/adhil/mamans-store/app.js:27:19)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/home/adhil/mamans-store/bin/www:7:11)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
var express = require('express');
var exphbs = require('express-handlebars');
var app = express();
app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');
Если вы получите эту ошибку
Error: Failed to lookup view "error" in views directory "/home/adhil/mamans-store/views"
at Function.render (/home/adhil/mamans-store/node_modules/express/lib/application.js:580:17)
at ServerResponse.render (/home/adhil/mamans-store/node_modules/express/lib/response.js:1008:7)
at /home/adhil/mamans-store/app.js:80:7
at Layer.handle_error (/home/adhil/mamans-store/node_modules/express/lib/router/layer.js:71:5)
at trim_prefix (/home/adhil/mamans-store/node_modules/express/lib/router/index.js:315:13)
at /home/adhil/mamans-store/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/adhil/mamans-store/node_modules/express/lib/router/index.js:335:12)
at next (/home/adhil/mamans-store/node_modules/express/lib/router/index.js:275:10)
at Layer.handle_error (/home/adhil/mamans-store/node_modules/express/lib/router/layer.js:67:12)
at trim_prefix (/home/adhil/mamans-store/node_modules/express/lib/router/index.js:315:13)
at /home/adhil/mamans-store/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/adhil/mamans-store/node_modules/express/lib/router/index.js:335:12)
at next (/home/adhil/mamans-store/node_modules/express/lib/router/index.js:275:10)
at /home/adhil/mamans-store/node_modules/express/lib/router/index.js:635:15
at IncomingMessage.next (/home/adhil/mamans-store/node_modules/express/lib/router/index.js:260:14)
at done (/home/adhil/mamans-store/node_modules/express/lib/response.js:1003:25)
at Function.render (/home/adhil/mamans-store/node_modules/express/lib/application.js:582:14)
at ServerResponse.render (/home/adhil/mamans-store/node_modules/express/lib/response.js:1008:7)
at PRODUCT_HELPER.getCategorisedProducts (/home/adhil/mamans-store/routes/user.js:17:17)
at Object.getCategorisedProducts (/home/adhil/mamans-store/helpers/PRODUCT_HELPER.js:247:9)
at PRODUCT_HELPER.getAllCarouselItems (/home/adhil/mamans-store/routes/user.js:16:24)
at Object.getAllCarouselItems (/home/adhil/mamans-store/helpers/PRODUCT_HELPER.js:219:9)
Переименуйте файл error.hbs в error.handlebars.
Это означает, что вам нужно переименовать все ваши файлы «example.hbs» в «example.handlebars».