액티브 스킬/노드

<Node.js> TypeError: expressHandlebars is not a function

디벅잉 2021. 12. 11. 23:11
728x90

 

⚔️

 

노드의 뷰 엔진으로 handlebars를 적용하다가

아래와 같은 에러가 발생하였습니다.

TypeError: expressHandlebars is not a function

const expressHandlebars = require("express-handlebars");

app.engine(
  "handlebars",
  expressHandlebars({
    defaultLayout: "main",
  })
);

< 에러가 발생한 코드>

 

아래 둘 중 하나로 고치면 해결됩니다.

const expressHandlebars = require("express-handlebars");

app.engine(
  "handlebars",
  expressHandlebars.engine({
    defaultLayout: "main",
  })
);

< 방법1: 5번째 줄 "expressHandlebars" => "expressHandlebars.engine">

const { engine } = require("express-handlebars");

app.engine(
  "handlebars",
  engine({
    defaultLayout: "main",
  })
);

< 방법2: 1번째 줄 "expressHandlebars" => "{ engine }", 5번째 줄 "expressHandlebars" => "engine">

 

에러가 발생한 이유

engine 함수를 사용하지 않았습니다.

해결방안

engine 함수를 호출하거나,  engine 함수를 임포트해야 합니다.

 

📌

 

https://stackoverflow.com/questions/69959820/typeerror-exphbs-is-not-a-function

 

TypeError: exphbs is not a function

I am trying to use the express-handlebars module but have an error. My code: var exphbs = require('express-handlebars'); app.engine('.hbs', exphbs({ extname: '.hbs', defaultLayout: "main"...

stackoverflow.com

 

728x90