【发布时间】:2014-06-13 00:50:12
【问题描述】:
我知道我们不应该在 node.js 异步函数中返回对象,并且异步函数中的每条路径都应该指向回调函数。为了在一定程度上解决“末日金字塔”的问题,为了更好的可读性,直接说“return”可以吗?在调用回调函数之后,我不必将其余代码放在 else 块中并跳过缩进并获得更好的可读性。到目前为止,代码一直运行良好,但只是想知道我是否忽略了任何潜在问题。
(function(database) {
var mongodb = require("mongodb");
database.ObjectID = mongodb.ObjectID;
var mongoUrl = "mongodb://localhost:27017/mydb";
var dbconn = null;
database.getDBConn = function(next){
if(dbconn){ next(null, dbconn); return; } //already connected: return dbconn
mongodb.MongoClient.connect(mongoUrl,function(err, database){
if(err){ next(err, null); return; } //connection fail: return error
dbconn = {db: database,
movies: database.collection("movie") };
next(null, dbconn); //connection success: return dbconn
});
}
})(module.exports);
【问题讨论】:
标签: node.js asynchronous callback readability