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})` + } } });