私はnode.jsを初めて使用します(1時間未満)。
mongodb コレクションを読み取り、データをブラウザー ウィンドウに出力する単純な http サーバーを立ち上げようとしています。
これまでのところ、私は持っています:
var http = require ("http")
var mongodb = require('mongodb');
http.createServer(function(request, response) {
var server = new mongodb.Server("127.0.0.1", 27107, {});
response.writeHead(200, {"Content-Type": "text/plain"});
response.write('Collection Data:<br>')
new mongodb.Db('testdb', server, {}).open(function (error, client) {
if (error) throw error;
var collection = new mongodb.Collection(client, 'test_coll');
collection.find({}, {limit:100}).each(function(err, doc) {
if (doc != null) {
console.dir(doc.text);
response.write(doc.text)
}
});
response.write("some stuff")
response.end();
});
}).listen(8080)
これにより、コレクション項目のテキストがコンソールに表示されますが、ブラウザー ウィンドウには表示されません。これは、応答オブジェクトが .each コールバックのスコープ内にないためだと思いますか? これを間違った方法で構成しましたか?