我是nodejs的新手,但是昨晚我在iisnode的IIS服務器上用mongodb獲得了一些東西。 :)nodejs&mongodb刷新錯誤?
但我想知道一件事似乎是一個刷新錯誤或什麼的。 當我在瀏覽器中訪問「http://localhost/mongo.js」時,結果第一次只是「[]」。如果我刷新結果將是我所期望的(與人有關的json數組)。 Dosen't這似乎錯了?
假設我現在用一個查詢「http://localhost/mongo.js?name = Daniel」來完成它,並獲取名稱爲Daniel的所有人員。第一次的迴應將是「所有人」,因爲這是我們上面要求的,而當我刷新時,結果將是所有名爲丹尼爾的人。 這是怎麼發生的? 似乎服務器緩存了我所做的查詢,而且我不想每次都刷新以獲取正確的結果。
這是我的代碼我使用:(也可以在這裏http://pastebin.com/PnVfrQmh)
/* GLOBALS
----------------------------------------------------------------------*/
var rdata = [];
/* SERVER SETTINGS
----------------------------------------------------------------------*/
//load http module to ceate an http server.
var http = require('http');
var url = require('url');
//configure to respond http server with message
http.createServer(function (request, response) {
//request name parameter
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
//do the mongo
var mongo = require('mongodb');
var db = new mongo.Db('nodedb', new mongo.Server('localhost', 27017, {}), {});
db.open(function() {
db.collection('Persons', function(err, collection) {
var cursor = collection.find(query);
cursor.each(function(err, doc) {
if(doc) {
rdata.push(doc);
}
});
});
});
//write what type of response
response.writeHead(200, {'Content-Type': 'application/json;charset=utf-8'});
//return data json array
response.end(JSON.stringify(rdata));
//clear rdata
rdata = [];
}).listen(process.env.PORT);