【发布时间】:2013-02-21 05:38:12
【问题描述】:
我是 nodeJS 的新手,所以我只是从基础开始尝试几件事。
我在从 MongoDB 检索数据时遇到问题,所以这里是代码:
var port = (process.env.VMC_APP_PORT || 3000);
var host = (process.env.VCAP_APP_HOST || 'localhost');
var http = require('http');
var mongo = require('mongodb');
http.createServer(function (req, res) {
var mongoUrl = "mongodb://<userid>:<password>@linus.mongohq.com:10090/<db>";
if (process.env.VCAP_SERVICES) {
mongoUrl = process.env.MONGOHQ_URL;
}
selectTable(req, res, mongoUrl);
}).listen(port, host);
var selectTable = function (req, res, mongoUrl) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write("Start\n");
mongo.connect(mongoUrl, function (err, conn) {
conn.collection('Test', function (err, coll) {
coll.find({}, {}, function (err, cursor) {
cursor.toArray(function (err, items) {
for (i = 0; i < items.length; i++) {
res.write(JSON.stringify(items[i]) + "\n");
}
res.end();
});
});
});
});
}
这在我的本地工作正常,它显示行,但是当我将它上传到我的 appfog 的一个应用程序时,它不显示行,它只是在“开始”处停止,没有其他内容显示。
请帮忙,非常感谢。
【问题讨论】:
-
检查
err返回的内容怎么样? -
我相信您的 MongoDB 在不同的端口上运行(可能在 27017)。你检查过吗?
-
process.env.VMC_APP_PORT -> 我已经在这里指定了端口,我也尝试打印完整的 URL,看起来还不错。
-
我也在 nodejitsu 中上传了相同的应用程序,它在那里工作正常,我错过了什么吗?
-
我再次检查它是否返回任何错误,并且没有。