From 2be5befb799594b2b8262d821042e168f12b782e Mon Sep 17 00:00:00 2001 From: Luk Lu Date: Sat, 11 Dec 2021 09:43:41 +0800 Subject: [PATCH] replace deprecated 'request' with 'http.get' so that no more external dependencies --- index.js => messenger.js | 80 ++++++++++++++++++++++------------------ package.json | 6 +-- 2 files changed, 47 insertions(+), 39 deletions(-) rename index.js => messenger.js (59%) diff --git a/index.js b/messenger.js similarity index 59% rename from index.js rename to messenger.js index 384c3d7..1dc9ada 100644 --- a/index.js +++ b/messenger.js @@ -1,7 +1,8 @@ -//const Bluebird=require('bluebird'); // http://bluebirdjs.com/ const util = require('util') -const RequestPromise = require('request-promise-native') // request-promise/-native。https://www.npmjs.com/package/request-promise. 还看到一个方法:Bluebird.promisifyAll(require("request")); +//const RequestPromise = require('request-promise-native') // request-promise/-native。https://www.npmjs.com/package/request-promise. 还看到一个方法:Bluebird.promisifyAll(require("request")); +const http = require('http') const NodeMailer = require('nodemailer') // 或者 const smtpTransporter=require('nodemailer').createTransport({host:'', port:25, auth:{user:'',pass:''}}) + let smtpTransporter = null let smsClient = null // 在调用时,才创建 smsClient,防止 wo.envi 还没有建立好。 @@ -38,39 +39,48 @@ module.exports = { smsUrl = wo.envi.SMS.dxton.urlWorld // 国际短信不需要签名、模板,可发送任意内容。 smsNumber = matches[0] + matches[1] } - // return Bluebird.promisify(Http.get)(smsUrl+'&mobile='+smsNumber+"&content="+encodeURIComponent(msg)); - let returnValue = await RequestPromise.get(smsUrl + '&mobile=' + smsNumber + '&content=' + encodeURIComponent(msg)) - let result = { _state: 'SMS_SEND_FAIL', code: returnValue } - switch (parseInt(returnValue)) { - // 短信接口代码:http://www.dxton.com/help_detail/2.html - case 100: - return { _state: 'SMS_SENT_SUCCESS', code: '100', msg: 'sendSms: 发送成功 (表示已和我们接口连通)' } - case 101: - result.msg = 'sendSms: 验证失败(账号、密码可能错误)' - case 102: - result.msg = 'sendSms: 手机号码格式不正确' - case 103: - result.msg = 'sendSms: 会员级别不够' - case 104: - result.msg = 'sendSms: 内容未审核 (试用或小批量应用,只能用系统后台公共模板格式,标点符号都要一致!)' - case 105: - result.msg = 'sendSms: 内容过多或无合适匹配通道' - case 106: - result.msg = 'sendSms: 账户余额不足' - case 107: - result.msg = 'sendSms: Ip受限' - case 108: - result.msg = 'sendSms: 手机号码发送太频繁(一天5个),请换号或隔天再发' - case 109: - result.msg = 'sendSms: 帐号被锁定' - case 110: - result.msg = 'sendSms: 手机号发送频率持续过高,黑名单屏蔽数日' - case 120: - result.msg = 'sendSms: 系统升级' - default: - console.error(result) - return result - } + // let returnValue = await RequestPromise.get(smsUrl + '&mobile=' + smsNumber + '&content=' + encodeURIComponent(msg)) + // let returnValue = await axios.get(smsUrl + '&mobile=' + smsNumber + '&content=' + encodeURIComponent(msg)) + // following code with http.get is untested: + return util.promisify(http.get)(smsUrl + '&mobile=' + smsNumber + '&content=' + encodeURIComponent(msg)) + .then((resp)=>{ + let data = '' + resp.on('data', (chunk) => { data += chunk }) + resp.on('end', () => { + let returnValue = JSON.parse(data) + let result = { _state: 'SMS_SEND_FAIL', code: returnValue } + switch (parseInt(returnValue)) { + // 短信接口代码:http://www.dxton.com/help_detail/2.html + case 100: + return { _state: 'SMS_SENT_SUCCESS', code: '100', msg: 'sendSms: 发送成功 (表示已和我们接口连通)' } + case 101: + result.msg = 'sendSms: 验证失败(账号、密码可能错误)' + case 102: + result.msg = 'sendSms: 手机号码格式不正确' + case 103: + result.msg = 'sendSms: 会员级别不够' + case 104: + result.msg = 'sendSms: 内容未审核 (试用或小批量应用,只能用系统后台公共模板格式,标点符号都要一致!)' + case 105: + result.msg = 'sendSms: 内容过多或无合适匹配通道' + case 106: + result.msg = 'sendSms: 账户余额不足' + case 107: + result.msg = 'sendSms: Ip受限' + case 108: + result.msg = 'sendSms: 手机号码发送太频繁(一天5个),请换号或隔天再发' + case 109: + result.msg = 'sendSms: 帐号被锁定' + case 110: + result.msg = 'sendSms: 手机号发送频率持续过高,黑名单屏蔽数日' + case 120: + result.msg = 'sendSms: 系统升级' + default: + console.error(result) + return result + } + }) + }) }, async sendSmsAliyun (phone, msgParam, templateCode, signName) { diff --git a/package.json b/package.json index a12f19f..0600f30 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,12 @@ { "name": "base.messenger", + "main": "messenger.js", "version": "0.1.0", "private": true, "dependencies": { "@alicloud/sms-sdk": "^1.1.3", - "nodemailer": "^4.4.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.9" + "nodemailer": "^4.4.1" }, - "devDependencies": {}, "scripts": { "setup": "npm install" },