CoffeeScriptでhttpサーバ
簡潔に書けるなあとは思いつつ、コンパイルが面倒だったり、そもそもJavaScriptを直に書いた方が良いよなあと思ったり。
index.coffee
http = require 'http' dataSection = require 'data-section' dataSection.get (err, data) -> throw err if err server = http.createServer() server.on 'request', (req, res) -> if req.method == 'GET' or req.method == 'HEAD' res.writeHead 200, 'content-length': Buffer.byteLength data.index, 'utf8' 'content-type': 'text/html; charset=utf-8' res.end if req.method == 'GET' then data.index else '' else res.writeHead 501, 'content-type': 'text/plain; charset=utf-8' res.end '501 Not Implemented' return server.listen 3000 return ###__DATA__ @@ index <!DOCTYPE html> <meta charset="utf-8"> <title>index</title> <p>index</p> __DATA__###
Makefile
files = $(wildcard *.coffee) .PHONY: all all: $(files:.coffee=.js) .PHONY: clean clean: $(RM) $(files:.coffee=.js) .SUFFIXES: .coffee .js .coffee.js: ./node_modules/.bin/coffee -bc $<
実行する
$ npm i data-section coffee-script $ make $ node index.js
流石に飽きてきたのでもうちょっと違う事やりたい。