2016-01-30 33 views
0

我一直在试图DocumentDb支持添加到我的Node.js Express应用程序像它在这里https://azure.microsoft.com/en-us/documentation/articles/documentdb-nodejs-application/的NodeJS + documentdb热身错误

现在是解释的。如果用户发出后,立即应用的开始她得到一个错误的请求因为我想我的DocumentDb数据库还没有准备好。

我想在这里让我的用户等待数据库初始化完成..我怎么能做到这一点或什么是node.js中的一般方法来处理在应用程序启动过程中需要一个位置的初始化?

var express = require('express'); 
.... 

var DocumentDBClient = require('documentdb').DocumentClient; 
var config = require('./config'); 
var StoryDao = require('./models/storyDao'); 
var Home = require('./controllers/home'); 

var docDbClient = new DocumentDBClient(config.endPoint, { 
    masterKey: config.authKey 
}); 

var storyDao = new StoryDao(docDbClient, config.databaseId, config.storyCollectionId); 
var home = new Home(storyDao); 
storyDao.init(); 
.... 
app.listen(app.get('port'), function(){ 
    console.log('app started on http://localhost:' + app.get('port') + '; press Ctrl-C to terminate.'); 
}); 
+1

穿上'app.listen'你的DAO的准备回调里面 – Prinzhorn

+0

感谢,@Prinzhorn!这是我首先想到的。但在这种情况下,我只是得到一个服务不可用的错误.. – alexxjk

+0

来自Azure或您的应用程序内的错误? – Prinzhorn

回答

0

站在了DocumentDB帐户是一次性设置,应该只需要< 5分钟。最简单的事情就是等待它完成。

否则,您可以建立一个模拟DAO ......这将是有益的从单元测试的角度来看:)