Как получить доступ к объекту «Запрос и ответ» в других файлах Node js (Express) - PullRequest
0 голосов
/ 18 апреля 2020

Ниже приведена структура папок моего проекта:

app
    Controller
        testController.js
    Service
        testInfoService.js
        testMoreDataService.js
config
node-modules
public
    index.js
routes
    routes.js

Вот код:

маршруты. js

router.get('/config', (req, res) => {
    require(controllerDirectoryPath+"/testController.js").index(req, res)
})

testController. js

const testInfoService  = require('somePath/Service/testInfoService')
const index = async (req, res) =>{
    console.log('Request object : ');
    console.log(req);
    console.log('Response object : ');
    console.log(res);

    //getting more info from service 
    testMoreInfo = await testInfoService.getMoreInformation(args)
    return res.status(200).send(testMoreInfo);
}
module.exports = {index:index}

testInfoService. js

const testMoreDataService = require("somePath/testMoreDataService")
const getMoreInformation = async (args)=> {
    ...some code here 
    response =  await testMoreDataService.getMoreData(args)
    return response
}
module.exports = {getMoreInformation:getMoreInformation}

testMoreDataService. js

const getMoreData = async (args)=> {
    **//here I want to use Request and Response object**
    ...some code here 

    return response
}
module.exports = {getMoreData:getMoreData}

Есть ли способ получить доступ к объекту req и res в моем сервисе?

Я использую узел: 12.16.2 с Express. Основной файл - public / index. js

Также дайте мне знать, правильно ли я следую за любым приложением (REST-API)?

1 Ответ

0 голосов
/ 18 апреля 2020

Структура правильная,

Маршрут -> Контроллер -> Сервис

Вам не нужно распространять фактический req, res объект вплоть до всех услуги. В вашем контроллере вы должны получить следующий параметр

  • Query. Например. req.query.limit
  • Переменная пути. Например, req.param.id
  • Тело запроса. Например. req.body / req.body.name

Как только вы получите необходимую информацию в контроллере, вы можете построить объект или передать соответствующую информацию в вашу службу.

Делать все дела logi c в вашем сервисе и возврат окончательной информации контроллеру.

Контроллер затем отправит этот ответ клиенту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...