Я не могу передать объект функции, экспортированной из другого модуля. Вот как обстоят дела.
Я экспортирую функцию из модуля TagService. js
файл: TagService. js
addTag = ({tag}) => {
//some activity
}
module.exports = { addTag, //other functions}
Вызов функции из модуля ServiceHandler. js
файл: ServiceHandler. js
const Controller = require('./Controller');
const service = require('../services/TagService');
const addTag = async (request, response) => {
await Controller.handleRequest(request, response, service.addTag);
};
Вот как устроен контроллер в Controller. js
файл: Controller. js
static async handleRequest(request, response, serviceOperation) {
//some activity
const serviceResponse = await serviceOperation(this.collectRequestParams(request));
//some more activity...
}
static collectRequestParams(request) {
//some activity
return requestParams;
}
Теперь, в контроллере , requestParams возвращается успешно. Но когда вызов переходит в функцию addTag по адресу TagService , объект tag не передается!
Еще немного фона. Это код, сгенерированный из openapi-generator для заглушки nodejs - express -сервера.
Вот шаблон openapi.yaml для службы тегов.
/samyojya-tag:
post:
operationId: addTag
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Tag'
responses:
"201":
content:
...
schemas:
Tag:
example:
name: name
id: 1
type: type
properties:
id:
type: string
name:
type: string
category:
type: string
type: object
xml:
name: Tag
Использование узла 12.16.2 и express 4.16.1