2015年09月
Cygwin←→Windowsのファイルパス相互変換(リンクのみ)
git flowをターミナルで使う(リンクのみ)
git-flow cheatsheet
Linuxでapt-get install git-flowってやってインストールしてやれば、なんか簡単に使えるようだな。
[Node.js] ejs使ってみる
ejsを使ってみる。ejsは、簡単に言うとjspやasp、PHPなんかのJavaScript版のようなものを実現するためのモジュールだ。文字列中の<%〜%>で囲まれた部分にJavaScriptを書いておくと、実行されて結果が埋め込まれた文字列が返ってくる。それをWebサーバの応答で返してやるとjspみたいなのができる。
$ npm install ejs
でモジュールのインストールする。
<%# コメント %>
コメント
<%= 変数 %>
のように書くと、渡した変数の内容がHTMLエスケープされて埋め込まれる。
<%- 変数 %>
のように書くと、渡した変数の内容がそのまま埋め込まれる。
<% 〜 %>
〜の部分にJavaScriptのコードが書ける。
サンプルだ。
index.ejs
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title><%= title %></title>
</head>
<body
<%# コメント %>
<%# hogeの内容をHTMLエスケープして埋め込まれる %>
<p><%= hoge %></p>
<%# hoge2の内容がそのまま埋め込まれる %>
<%- hoge2 %>
<%# 埋め込まれているスクリプトが実行される %>
<ul>
<% hoge3.forEach(function(item) { %>
<li><%= item %></li>
<% }); %>
</ul>
</body>
</html>
test.ts
/// <reference path="./typings/node/node.d.ts" />
import * as http from "http";
import * as fs from "fs";
var ejs = require("ejs");
http.createServer((req, res)=>{
var tmp = ejs.render(fs.readFileSync("./index.ejs", "utf-8"),
{
"title":"タイトル",
"hoge":"<h1>ほげー<h1>",
"hoge2":"<h1>H1</h1>",
"hoge3":[ "ほげ1", "ほげ2", "ほげ3" ]
}
);
res.writeHead(200, { "Content-Type": "text/html"});
res.write(tmp);
res.end();
}).listen(9999);
ejs.renderに文字列とejsで使っている変数名を持っているオブジェクトを渡すとこんな感じになる。

[Node.js] 引数で指定したモジュールを読み込んで関数を呼び出す
起動時の引数でしたモジュールを読み込んで関数を呼び出してみる。まー、わざわざ書くほどのものではないんだが。
これで、プラグインみたいなのが作れるってことだな。
test.ts
/// <reference path="./typings/node/node.d.ts" />
var test:any = null;
try {
test = require(process.argv[2]);
} catch(err) {
console.log(err);
}
if(test) {
if(test.print) {
test.print();
} else {
console.log("printメソッドが実装されていません。");
}
}
test1.ts
export function print() {
console.log("test1 !!");
}
test2.ts
export function print() {
console.log("test2 !!");
}
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5"
},
"files":[
"./test.ts",
"./test1.ts",
"./test2.ts"
]
}
tscでコンパイルする。
node ./test.ts ./test1 と実行すると "test1 !!"と
node ./test.ts ./test2 と実行すると "test2 !!”と表示される。