Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
And I found the reason and how to SET your blog’s language.
hexo says that if we set i18n_dir as lang, they will detect the language within the first segment of URL. For example:
1 2 3
/index.html => en /archives/index.html => en /zh-tw/index.html => zh-tw
The string will only be served as a language when the language file exists. So archives in /archives/index.html (example 2) will not get served as a language.
But it was odd. When my blog shows French, request headers message’s language part setting was right(in Korean or English).
I don’t know why the other languages appeared but after setting languageoption as en in _config.yml and then deleted, it became ok.
Until now I think it’s about hexo-i18n but I don’t understand why;; If this blog’s language is weird then notice me. In case I will see again, I will try to find the reason again
#Server Strting module This module can be used without abstracting by require()method.
When this module is installed, the code uses -g option. -g makes the installing globally. Then the modules which are installed with -g option are placed in {prefix}/lib/node_modules and the executable files are placed in {prefix}/bin
We will install supervisor and forever modules with the option like this.
1 2
npm install -g supervisor npm install -g forever
#supervisor module Node.js programming makes us stop and restart the server again and again whenever we need to change the code because though the files are changed, the script executing doesn’t get impact. But, supervisor module recognizes the difference and restarts the server automatically.
그러면 우리는 약간의 시간 뒤에 우리가 주문한 치킨을 집(전화로 말한 주소)에서 받게 된다.
이러한 맥락에서 URL을 웹 브라우저에 입력하는 것은 치킨을 시키는 전화로 볼 수 있고, 웹페이지를 웹브라우저으로부터 받는 것을 치킨집으로부터 치킨을 받는 것으로 볼 수 있다. 이러한 비유가 웹페이지의 요청과 응답에 대한 기본적인 이해이다.
서버는 요청을 보내는 방법에 따라 http 웹서버 또는 https 웹서버 등으로 불린다. 요청메시지를 사용하면, 유저들에게 더 적합한 웹페이지를 보여줄 수 있다. 응답메시지를 사용하면, 쿠키를 사용, 저장하거나 페이지 강제 이동 등의 추가 기능을 사용할 수 있다 http모듈에서 가장 중요한 객체는 server객체이다. server객체는 http 모듈의 createServer()메소드를 사용하여 만들 수 있다.
server객체의 메소드
listen(port[, callback]) — 서버를 시작한다
close([callback]) — 서버를 중지한다
server객체의 이벤트
request — 사용자가 무언가를 요청할 때 발생
connection — 사용자가 서버에 접속할 때 발생
close — 서버가 닫힐 때 발생
checkContinue — 사용자가 서버를 계속 열고 있을 때 발생
upgrade — 사용자가 HTTP 업그레이드를 요청할 때 발생
clientError — 사용자가 에러를 발생시키면 발생
웹페이지를 제공하고자 할 때, 요청메시지를 작성해야한다. 요청메시지의 작성은 request 이벤트 리스너의 두번째 매개변수인 response객체를 통해 할 수 있다.
Response객체의 메소드
writeHead(statusCode[, statusMessage][, headers]) — response header를 작성할 때
<h1><%=name%></h1> <p><%=description%></p> <hr/> <%for(var i = 0;i<10;i++){%> <h2>The Square of <%= i %> is <%= i*i%></h2> <%}%>
Jade module
Jade 모듈도 ejs와 마찬가지로 템플릿 엔진 중 하나이다.
Jade모듈을 설치할 때에도 다음과 같이 ejs와 같은 방식(외부 모듈 설치)을 사용한다.
1
npm install jade
Jade 모듈이 jade페이지를 HTML페이지로 변환할 때는 모듈의 내장 함수 중 compile(String, option)을 사용한다. ejs모듈의 render()함수와 한가지 다른 점은 render()함수는 스트링을 리턴하지만, jade의 compile()함수는 함수 자체를 돌려준다. 같은 맥락에서 jade에 자바스크립트의 변수를 전달할 때는 아래 코드의 11, 12번째 줄처럼 compile()함수가 리턴한 함수의 매개변수로 전달한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
var http = require("http"); var fs = require('fs'); var jade = require('jade');
response.writeHead(200, {'Content-Type':'text/html'}); response.end(fn({ name: 'booski', description : 'Hellow jade with node.js' })); }); }).listen(52273, function(){ console.log("Server Running at http://127.0.0.1.52273"); });
Jade를 사용할 때도 ejs처럼 특별한 방식으로 코드를 작성해야한다. 가장 중요한 부분은 들여쓰기이다. jade모듈은 들여쓰기를 기준으로 새로운 HTML태그를 만들기 때문이다.
Tip: jade에서 들여쓰기를 할 때는 탭 또는 스페이스바 중 하나로 통일해야한다. 그렇지않으면 에러가 발생한다.
태그 안에 글을 넣고 싶을 때는 해당 태그의 다음 줄에서 들여쓰기를 한 뒤 작성하면 된다. 또한 어떤 태그에 속성을 부여하고 싶을 때는, 괄호 ()를 이용하면 된다.(여러 속성을 주고 싶으면 각 속성을 ,로 구분한다.)
Jade는 doctype과 주석 등 몇 가지 코드를 특수한 형태로 변환하는데 그 형태는 다음과 같다.
doctype html → <!DOCTYPE html>
// JADE String → <!-- JADE String -->
특히 새 div태그를 만들 때는 ‘div’를 직접 쓸 필요가 없다.
#header의 형태로 jade를 작성하면, ‘header’를 id로 갖는 div태그가 만들어진다. 같은 방식으로, .article의 경우는 ‘article’을 class로 갖는 div태그가 만들어진다.
Jade 역시 ejs처럼 특수한 태그를 갖는다.
-Code → 자바스크립트 코드를 적는다
#{Value} → 값을 출력한다.(내용 중간에 값을 집어넣음)
=Value → 값을 출력한다.(전체 내용이 값이 됨) 이러한 태그들을 사용해서 아래 코드의 11번째 줄처럼 for 반복문도 구현 가능하다.
지금까지 언급한 내용을 바탕으로 아래와 같은 코드를 작성할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
doctype html html head title index Page body // JADE String #header h1 hello jade...! h2 #{name}, we are the World h3= description hr - for(var i = 0; i< 10;i++) { .article p a(href="https://medium.com/@booski/", data-test="attribute added") Go to new world #{i} - }
When we want to update many columns in one query, we can just connect them with ,. Let’s say we want to update A column to 1 and B column to 2 in one query. Then we can do like this,