gpt4 book ai didi

node.js - Node Express,简化 mongoose 的路由回调

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:53 25 4
gpt4 key购买 nike

使用 Express,如何简化此代码,特别是我传递的服务回调函数,它使用 res 变量,这意味着我无法事先声明该函数。

app.post('/user', function(req, res) {
service.create(req.body, function(err, obj) {
if (err) {
res.send(500);
} else {
res.send(obj);
}
});
});

app.put('/user/:id', function(req, res) {
service.update(req.params.id, req.body, function(err, obj) {
if (err) {
res.send(500);
} else {
res.send(obj);
}
});
});

app.delete('/user/:id', function(req, res) {
service.delete(req.params.id, function(err, obj) {
if (err) {
res.send(500);
} else {
res.send(obj);
}
});
});

app.get('/user/:id', function(req, res) {
service.read(req.params.id, function(err, obj) {
if (err) {
res.send(500);
} else {
res.send(obj);
}
});
});

最佳答案

您可以创建一个返回匿名函数的函数,该函数处理 Mongoose 模型,但仍然可以通过闭包访问响应对象。

var serviceCallback = function(response){
return function(err, obj){
if (err) {
response.send(500);
} else {
response.send(obj);
}
}
}

app.post('/user', function(req, res) {
service.create(req.body, serviceCallback(res));
}
app.put('/user/:id', function(req, res) {
service.update(req.params.id, req.body, serviceCallback(res));
}
app.delete('/user/:id', function(req, res) {
service.delete(req.params.id, serviceCallback(res));
}
app.get('/user/:id', function(req, res) {
service.read(req.params.id, serviceCallback(res));
}

关于node.js - Node Express,简化 mongoose 的路由回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com