【发布时间】:2014-11-14 11:12:39
【问题描述】:
这是一个我想简化的例子:
exports.generateUrl = function (req, res) {
var id = req.query.someParameter;
var query = MyMongooseModel.findOne({'id': id});
query.exec(function (err, mongooseModel) {
if(err) {
//deal with it
}
if (!mongooseModel) {
generateUrl(Id,
function (err, text, url) {
if (err) {
res.status(HttpStatus.INTERNAL_SERVER_ERROR).send(err);
return;
}
var newMongooseModel = new AnotherMongooseModel();
newMongooseModel.id = id;
newMongooseModel.save(function (err) {
if (err) {
res.status(HttpStatus.INTERNAL_SERVER_ERROR).send(err);
} else {
res.send({url: url, text: text});
}
});
});
} else {
//deal with already exists
}
});
};
我看过其他 SO 回答,他们告诉您使用命名函数,但没有说明如何处理您想要传入的变量或使用 jQuery 的队列。这两个我都没有。
我知道我可以用名称函数替换我的匿名函数,但是我需要传递变量。例如,如果函数在别处定义,我的内部函数将如何访问 res?
【问题讨论】:
标签: javascript node.js express callback mongoose