gist

2012年5月27日日曜日

mimeを使ってみた

mimeは、MIME-TYPEをマッピングしているパッケージです。

$ npm install mime

CoffeeScript

mime = require 'mime'

console.log '--- lookup ---'
console.log mime.lookup '.txt'
console.log mime.lookup '.mp3'
console.log mime.lookup 'a.htm'
console.log mime.lookup '.flv'

console.log '--- extension ---'
console.log mime.extension 'text/html'
console.log mime.extension 'application/vnd.ms-excel'
console.log mime.extension 'video/x-m4v'
console.log mime.extension 'application/json'

mimeには、ファイルの拡張子からMIME-TYPEを取得する lookup メソッドと、その逆でMIME-TYPEから拡張子を取得する extensionメソッドがあります。

実行してみます。

$ coffee sample.coffee 
--- lookup ---
text/plain
audio/mpeg
text/html
video/x-flv
--- extension ---
html
xls
m4v
json

また、mimeでは、独自のMIME-TYPEを追加することができます。

mime = require 'mime'

console.log '--- custom ---'

mime.define {
 'text/coffee': ['coffee', 'cf']
 'text/ruby': ['rb', 'ruby']
}

console.log mime.lookup 'sample.coffee'
console.log mime.lookup 'sample.cf'
console.log mime.extension 'text/coffee'
console.log mime.lookup 'sample.rb'
console.log mime.extension 'text/ruby'

console.log '--- load sample.types ---'
mime.load 'sample.types'
console.log mime.lookup 'a.mid'
console.log mime.extension 'audio/x-midi'

defineメソッドでコードからMIME-TYPEを追加できます。loadメソッドでは、ファイルを指定して追加することもできます。このときのファイルフォーマットは、Apacheのtypes形式となります。

sample.types

audio/x-midi mid

実行

$ coffee sample.coffee 
--- custom ---
text/coffee
text/coffee
coffee
text/ruby
rb
--- load sample.types ---
audio/x-midi
mid

mimeは、地味ですが、expressなどのWebフレームワークで使われている重要なパッケージの一つです。

0 件のコメント: