例如我有两个服务:db和队列 我需要在db和amqp连接到它们的服务器之后启动服务器。在所有服务启动后启动node.js应用程序
现在我有这样的事情server.js:
let mongo = require('./server/db');
let qManager = require('./server/amqp');
mongo.connect(()=>{
qManager.connect(()=>{
http.listen(3001, function() {
console.log('listening on *:3001');
});
});
});
蒙戈连接方法:
const connectDb = (callback) => {
if (state.db) return state.db;
let connection = MongoClient.connect(mongoUrl, (err, db) => {
if (err) {
connectDb();
}
state.db = db;
console.log('Mongo connected.');
callback();
});
};
RabbitMQ的连接方法:
const connect = (callback) => {
connection = amqp.connect(url)
.then(conn => {
module.connection = conn;
channel = conn.createChannel();
console.log('Queue connected.');
pythonResultListener();
callback()
})
.catch(err => {
console.error('Connect failed: %s', err);
});
return connection;
};
也许有多大更好的方法?谢谢。