gpt4 book ai didi

javascript - 重构npm请求方法代码

转载 作者:行者123 更新时间:2023-12-02 14:15:17 26 4
gpt4 key购买 nike

当前使用 npm request,我想将代码重构为以下内容:

app.post('/work_order',function (req,res) {
var work_order = req.body.work_order;
var url = soapURI + work_order;
reqMethod(url);
});

app.get('/work_order/:work_order', function (req, res) {
var work_order = req.params.work_order;
var url = soapURI + work_order;
reqMethod(url);
});

function reqMethod (url){
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
// console.log(body); // Print the json response
res.send(body);
}
});
}

问题是 reqMethod 现在是一个 promise ,而 res.send(body) 是其中的一部分。我不能简单地返回 res.send(body)。我有 2 段重复的代码(每一段都与该方法的代码完全相同)位于 .get.post 中,所以我想将它们移到一种通用的、可重复使用的方法。

问题:

  1. 如何让它发挥作用?

  2. request 是一个好的 npm 模块吗?您能否提出一些替代方案,也许是更好的方案?

谢谢

最佳答案

您有 2 个选择。

选项1:将结果(res)参数传递到reqMethod中:

app.post('/work_order',function (req,res) {
var work_order = req.body.work_order;
var url = soapURI + work_order;
reqMethod(url, res);
});

app.get('/work_order/:work_order', function (req, res) {
var work_order = req.params.work_order;
var url = soapURI + work_order;
reqMethod(url, res);
});
function reqMethod (url, res){
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
// console.log(body); // Print the json response
res.send(body);
}
else {
//send error here
}
});
}

选项 2:向 reqMethod 添加回调

app.post('/work_order',function (req,res) {
var work_order = req.body.work_order;
var url = soapURI + work_order;
reqMethod(url, function(err, body) {
res.send(body)
);
});

app.get('/work_order/:work_order', function (req, res) {
var work_order = req.params.work_order;
var url = soapURI + work_order;
reqMethod(url, function(err, body) {
res.send(body)
);
});
function reqMethod (url, cb){
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
// console.log(body); // Print the json response
cb(null, body);
}
else {
cb(error)
}
});
}

关于javascript - 重构npm请求方法代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089267/

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