node.jsとgridfsをうまく再生するのは簡単ではありません。私が試したすべてのことの中で、私はこれが限られた知識で得ることができる限り近くにあり、現在サポートされている機能が可能になることを理解していることに決めました。
(以下のコーヒーでは、http://js2coffee.org/を使用してjsにアクセスし、その逆も同様です)
util = require("util")
mongodb = require("mongodb")
GridStore = mongodb.GridStore
parse = (options) ->
opts = {}
opts = options[0] if options.length > 0
opts.metadata = {} unless opts.metadata
opts
db = new Db("local", new Server("127.0.0.1", 27017,
auto_reconnect: false
poolSize: 1
),
native_parser: false
)
db.open()
putFile = (path, name, options, fn) ->
options = parse(options)
options.metadata.filename = name
new GridStore(db, name, "w", options).open (err, file) ->
return fn(err) if err
file.writeFile path, (err, fn) ->
file.close()
opts = content_type: "plain/text"
myfileupload = putFile("myfile.txt", "known_hosts", opts)
db.close()
しかし、不思議なことに、Ubuntu11.10でapt-getinstall mongodb-10genを使用すると、ファイルが保存されません。そして、その理由を理解するのに役立つエラーメッセージはありません。
私がgridfsとnodejsについて読んだものはすべて、ただの残酷な冗談であり、この作品を見ることは決してないだろうと私は信じています。助けてください。