【发布时间】:2021-11-17 05:34:28
【问题描述】:
我想知道如何将 CRUD 操作编写为回调,以便尊重关注点分离。
例如,我编写了可以返回所有用户的操作:
UserService.js
function getUsers(callback) {
User.find(function(err, users) {
if (err) {
console.log("Fehler bei Suche: " + err)
return callback(err, null)
}
console.log("Alles gut gelaufen.");
return callback(null, users);
})
}
UserRoute.js
router.get('/publicUser', function(req, res, next) {
userService.getUsers(function(err, result) {
console.log("Resultat: " + result)
if (result) {
res.send(Object.values(result))
} else {
res.send("Es gab Probleme.")
}
})
})
一个对应的 CRUD 函数,没有回调,只返回一个用户,在我看来是这样的。
Userservice.js
function getByUserId(req, res, next) {
let userIDD = req.body.userID;
User.findOne({
userID: userIDD
}, function(err, result) {
if (err) {
console.log("Fehler bei Suche: " + err)
} else {
console.log("Alles gut gelaufen.");
res.send(result)
}
})
}
UserRoute.js
router.post('/publicUser/getByUserID', userService.getByUserId)
现在,同一个函数究竟是什么样子的呢?
【问题讨论】:
标签: javascript express callback crud