Функции сборки URL и получения IP-адреса сервера входящих сообщений

This commit is contained in:
Mikhail Chechnev 2018-12-12 19:23:11 +03:00
parent 0fd015f86f
commit 14ab980efb

View File

@ -8,6 +8,7 @@
//----------------------
const _ = require("lodash"); //Работа с массивами и объектами
const os = require("os"); //Средства операционной системы
const Schema = require("validate"); //Схемы валидации
const nodemailer = require("nodemailer"); //Отправка E-Mail сообщений
const {
@ -222,6 +223,37 @@ const sendMail = prms => {
});
};
//Сборка URL по адресу сервиса и функции сервиса
const buildURL = prms => {
//Проверяем структуру переданного объекта для старта
let sCheckResult = validateObject(prms, prmsUtilsSchema.buildURL, "Параметры функции формирования URL");
//Если структура объекта в норме
if (!sCheckResult) {
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! КОНТРОЛЬ КОРРЕКТНОСТИ
return `${prms.sSrvRoot}/${prms.sFnURL}`;
} else {
throw new ServerError(SERR_OBJECT_BAD_INTERFACE, sCheckResult);
}
};
//Получение списка IP-адресов хоста сервера
const getIPs = () => {
let ips = [];
//получим список сетевых интерфейсов
const ifaces = os.networkInterfaces();
//обходим сетевые интерфейсы
Object.keys(ifaces).forEach(ifname => {
ifaces[ifname].forEach(iface => {
//пропускаем локальный адрес и не IPv4 адреса
if ("IPv4" !== iface.family || iface.internal !== false) return;
//добавим адрес к резульату
ips.push(iface.address);
});
});
//вернем ответ
return ips;
};
//-----------------
// Интерфейс модуля
//-----------------
@ -233,3 +265,5 @@ exports.getAppSrvModuleName = getAppSrvModuleName;
exports.getAppSrvFunctionName = getAppSrvFunctionName;
exports.getAppSrvFunction = getAppSrvFunction;
exports.sendMail = sendMail;
exports.buildURL = buildURL;
exports.getIPs = getIPs;