> 웹 프론트엔드 > JS 튜토리얼 > Node.js에서 JavaScript의 EJS 템플릿 라이브러리를 호출하는 방법 project_node.js

Node.js에서 JavaScript의 EJS 템플릿 라이브러리를 호출하는 방법 project_node.js

WBOY
풀어 주다: 2016-05-16 15:11:02
원래의
1481명이 탐색했습니다.

외부 모듈이므로 호출 방법은 mysql 모듈과 동일하므로 다시 설명하지 않겠습니다.

ejs의 렌더링 함수에는 두 개의 매개변수가 있습니다. 첫 번째는 문자열이고 두 번째는 다른 JavaScript 템플릿과 마찬가지로 렌더링해야 하는 데이터도 옵션 개체에 포함됩니다.

ejs.render(str,option); 
// 渲染字符串 str 一般是通过nodejs文件系统的readfile方法读取 
ejs.render(str,{ 
  data : user_data // 需要渲染的数据 
}); 
로그인 후 복사
str 문자열에 include 태그가 없으면 데이터 렌더링에 문제가 없습니다. 그렇지 않으면 오류가 보고됩니다. 앞서 언급했듯이 내 프로젝트 파일과 nodejs 설치 파일이 동일한 루트 디렉터리에 있지 않습니다. 이 문제를 해결하려면 옵션 매개변수의 파일 이름 속성을 구성해야 합니다.

ejs 소스 코드를 살펴보면 ejs가 포함 파일의 경로를 처리할 때solveInclude 함수를 사용하는 것을 알 수 있습니다.

function resolveInclude(name, filename) { 
 var path = join(dirname(filename), name); 
 var ext = extname(name); 
 if (!ext) path += '.ejs'; 
 return path; 
} 
로그인 후 복사
filename은 dirname 함수의 매개변수입니다. nodejs 코어 모듈의 path.dirname()으로서 반환되는 경로는 항상 nodejs 설치 경로를 기준으로 합니다. filename 값을 지정하지 않으면 파일이 생성되지 않습니다. 발견

dirname을 사용할 때 함수가 들어오는 경로 매개변수를 처리할 때 첫 번째
가 가로채어진다는 점에 유의해야 합니다. '/' 앞 부분이 경로 이름으로 사용됩니다. 예:

path.dirname('/foo/bar/baz/asdf/quux') 
// returns 
'/foo/bar/baz/asdf' 
로그인 후 복사
tpl 디렉토리를 얻으려면 다음과 같이 작성할 수 있습니다:

path.dirname('/tpl/..') // return /tpl 
로그인 후 복사
완전한 렌더링 기능은 다음과 같습니다.

ejs.render(str,{ 
  filename : path + '/tpl/..', //tpl文件中保存的是模版文件 
  data: user_data 
}); 

로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿