我正在使用 Windows Azure 部署一个我编写的 Node.js 应用程序,该应用程序向客户端公开一个相当简单的 REST CRUD api。它托管在 Windows Azure 网站中,并通过 Windows Azure 商店与 mongoose 一起使用 MongoDB。我向服务发出的请求是 JSON,响应也是 JSON(不确定这是否重要,但其他人已经讨论过对内容类型为 application/json 的请求有 400 个响应)
在很长一段时间第一次访问时,应用程序毫无失败地返回 400 Bad Request。只要我经常点击应用程序(至少每分钟一次左右)来保持应用程序“温暖” - 我似乎再也不会遇到这种情况了。
托管扩展设置并不重要 - 我在免费层上得到的结果与在保留模式下得到的结果相同。
还有人看过这个吗?
最佳答案
为了保证对 Node.js 中任何连接的访问,您必须将所有需要连接的代码放在回调中。 Mongoose 公开此连接的方式是通过事件。当 mongoose 连接调用事件“open”时,您就可以访问数据库连接。
即:
mongoose.connect('details');
mongoose.on('open', function () {
var connection = mongoose.connection;
// Do things with your connection here
doThings(connection);
});
function doThings(connection) {
app.get(...);
}
关于node.js - 使用 MongoDB 对 Windows Azure 上的 node.js 应用程序的首次请求产生 400 Bad Request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15512017/