Hi, There!
안녕하세요, 바오밥입니다.
목차
- 문제
- 솔루션
- Reference
문제
NodeJS 서버에서 예제를 보며 게시판 API를 개발해 보고 있었는데 다음과 같은 오류가 출력되었습니다.
Error: No default engine was specified and no extension was provided.
res.render() 메서드는 반드시 ejs View Engine을 사용해 줘야 합니다.
따라서 별도의 프론트엔드 프레임워크(React 등)를 사용하는 경우 render() 메서드를 사용하는 것이 아니라 별도로 JSON 타입으로 변환하여 반환해야 합니다.
솔루션1 - ejs 엔진 사용
npm을 이용하여 ejs 엔진을 다운로드 합니다.
npm i ejs
// ejs 엔진 다운로드
다운로드 후 res.render() 메서드 보다 상단 라인에 ejs 뷰 엔진을 셋팅합니다.
솔루션2 - res.json() 로 대체
react 프레임워크를 사용하고 있는 경우 res.json() 메서드로 대체하여 클라이언트에게 데이터를 반환해 줘야 합니다.
app.get('/api/board', (req, res) => {
Post.find({}, (err, posts) => {
if(err) return res.json(err);
res.json({posts:posts});
});
});
Reference