我正在使用第三方短信服务,我想在一个不同的文件中使用。当我点击api url时,我想从第三方api发送服务器响应。我该怎么做?
app.js
app.get('/sendansms', (req, res) => {
let response = sendSms(res);
console.log( "is response ", response);
res.send(response)
})smsservice.js
var request = require("request");
module.exports.sendSms = (params) => {
var options = {
'method': 'POST',
'url': 'https://smsplus.xxxxxxx.com/api/v3/send-sms',
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"api_token": "xxxxx-xxxxx-xxxxx-xxxxx",
"sid": "xxxxxx",
"msisdn": "xxxxxx",
"sms": "Test SMS",
"csms_id": "xxxxxxx"
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
};发布于 2022-10-11 10:49:55
您需要使您的sendSms函数承诺库返回承诺,而在您的路由函数中,您需要使函数异步等待该承诺。
在你的应用中
app.get('/sendansms', async(req, res) => {
let response = await sendSms(req);
console.log( "is response ", response);
res.send(response)
})smsservice.js
var request = require("request");
odule.exports.sendSms = (params) => {
return new Promise((resolve, reject)=> {
try {
var options = {
'method': 'POST',
'url': 'https://smsplus.xxxxxxx.com/api/v3/send-sms',
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({
"api_token": "xxxxx-xxxxx-xxxxx-xxxxx",
"sid": "xxxxxx",
"msisdn": "xxxxxx",
"sms": "Test SMS",
"csms_id": "xxxxxxx"
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
return resolve(response.body);
});
} catch(e) {
return reject(e)
}
})
}https://stackoverflow.com/questions/74026726
复制相似问题