반응형
Jade-템플릿 엔진 : 변수가 있는지 확인하는 방법
저는 현재 새 프로젝트에서 Jade를 사용하고 있습니다. 페이지를 렌더링하고 특정 변수를 사용할 수 있는지 확인하고 싶습니다.
app.js
:
app.get('/register', function(req, res){
res.render('register', {
locals: {
title: 'Register',
text: 'Register as a user.',
}
});
});
register.jade
:
- if (username)
p= username
- else
p No Username!
항상 다음과 같은 오류가 발생합니다.
username is not defined
이 문제를 어떻게 해결할 수 있는지에 대한 아이디어가 있습니까?
이것은 작동합니다.
- if (typeof(username) !== 'undefined'){
//-do something
-}
정의되지 않은 값 대신 잘못된 값을 테스트하는 데 신경 쓰지 않는다면 @Chetan의 방법보다 간단합니다.
if locals.username
p= username
else
p No Username!
이것은 다소 아이러니하게 명명 된 locals
것이 템플릿의 루트 객체 이기 때문에 작동합니다 .
if 'username' in this
p=username
res.locals가 템플릿의 루트 개체이기 때문에 작동합니다.
사용 가능한 특정 변수를 원하지만 항상 사용되는 것은 아니라는 것을 미리 알고 있다면 헬퍼 객체에 "기본값"값을 추가하기 시작했습니다.
app.helpers({ username: false });
이렇게 if (username) {
하면 치명적인 오류 없이도 작업을 수행 할 수 있습니다 . :)
지역 개체에 '사용자 이름'이 포함되지 않아야합니까?
https://github.com/visionmedia/jade/tree/master/examples
isDefined
내 뷰의 모든 곳에서 메서드를 사용할 수 있도록 미들웨어를 만들었습니다 .
module.exports = (req, res, next) => {
res.locals.isDefined = (variable) => {
return typeof(variable) !== 'undefined'
};
next();
};
참고 URL : https://stackoverflow.com/questions/5070841/jade-template-engine-how-to-check-if-a-variable-exists
반응형
'development' 카테고리의 다른 글
# 1025- './database/#sql-2e0f_1254ba7'을 './database/table'로 이름을 바꿀 때 오류 발생 (errno : 150) (0) | 2020.10.11 |
---|---|
선행 0을 사용하려면 mySQL MONTH ()를 얻습니까? (0) | 2020.10.11 |
비밀번호를 묻는 거북이 (0) | 2020.10.11 |
지시어에서 마우스 오버시 클래스 변경 (0) | 2020.10.11 |
System.loadLibrary (…)가 제 경우에는 네이티브 라이브러리를 찾을 수 없습니다. (0) | 2020.10.11 |