From 86538cb3c4f17990f945b0bcf769e900c1ce9055 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Fri, 15 Feb 2019 21:01:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D1=82=D0=B4=D0=B0=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D1=81=D1=82=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81?= =?UTF-8?q?=D0=BA=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.js | 4 +++- core/in_queue.js | 12 ++++++++++-- models/obj_config.js | 10 ++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/config.js b/config.js index 6519235..72a82e0 100644 --- a/config.js +++ b/config.js @@ -34,7 +34,9 @@ let inComing = { //Порт сервера входящих сообщений nPort: 8080, //Максимальный размер входящего сообщения (мб) - nMsgMaxSize: 10 + nMsgMaxSize: 10, + //Каталог размещения статических ресурсов + sStaticDir: "static" }; //Параметры отправки E-Mail уведомлений diff --git a/core/in_queue.js b/core/in_queue.js index 451439d..6bb799d 100644 --- a/core/in_queue.js +++ b/core/in_queue.js @@ -332,8 +332,15 @@ class InQueue extends EventEmitter { }` ); }); - //Для всех функций сервиса... - _.forEach(srvs.functions, fn => { + //Для всех статических функций сервиса... + _.forEach(_.filter(srvs.functions, fn => fn.sFnURL.startsWith("@")), fn => { + this.webApp.use( + buildURL({ sSrvRoot: srvs.sSrvRoot, sFnURL: fn.sFnURL.substr(1) }), + express.static(`${this.inComing.sStaticDir}/${fn.sFnURL.substr(1)}`) + ); + }); + //Для всех функций сервиса (кроме статических)... + _.forEach(_.filter(srvs.functions, fn => !fn.sFnURL.startsWith("@")), fn => { //...собственный обработчик, в зависимости от указанного способа передачи параметров this.webApp[fn.nFnPrmsType == objServiceFnSchema.NFN_PRMS_TYPE_POST ? "post" : "get"]( buildURL({ sSrvRoot: srvs.sSrvRoot, sFnURL: fn.sFnURL }), @@ -380,6 +387,7 @@ class InQueue extends EventEmitter { //Отправим ошибку клиенту res.status(500).send(makeErrorText(new ServerError(SERR_WEB_SERVER, err.message))); }); + //Запускаем сервер this.srv = this.webApp.listen(this.inComing.nPort, () => { //И оповещаем всех что запустились diff --git a/models/obj_config.js b/models/obj_config.js index 8b5ce27..1f2620f 100644 --- a/models/obj_config.js +++ b/models/obj_config.js @@ -133,6 +133,16 @@ const inComing = new Schema({ validateMsgMaxSize: path => `Максимальный размер входящего сообщения (${path}) должен быть целым числом в диапазоне от 1 до 1000` } + }, + //Каталог размещения статических ресурсов + sStaticDir: { + type: String, + required: true, + message: { + type: path => + `Каталог размещения статических ресурсов (${path}) имеет некорректный тип данных (ожидалось - String)`, + required: path => `Не указан каталог размещения статических ресурсов (${path})` + } } });