Node.JS Приложение - Задачи и API - PullRequest
0 голосов
/ 14 февраля 2020

Общий вопрос.

Я хочу создать консольное приложение с Node.js, которое также имеет возможности API. У него будет синхронизированное задание, которое будет выполняться по расписанию, но также будет доступно для отправки http-запроса. Моя проблема в том, что пока я создал API. Я не знаю, как go создать задачу basi c, которая будет выполняться по расписанию, пока сервер продолжает работать, если запрос http сделан для различных типов задач.

Основная идея заключается в том, чтобы было запущено расписание задач, при этом сервер работал и ожидал http-запроса

Пути к папкам

папки -controllers -моделей -модулями -node-модули -routes общие файлы приложение. js пакет блокировки. json пакет. json сервер. js задача. js

Предлагаемая область для выполнения запланированного задания: index. js

    const { checkTablesForData, requestRoutine, runNecessaryUpdate }  = require('./task')

    function Main() {
        ...
        \\task to be executed

        \\Check the table for records to be processed
        let obj = checkTablesForData();

        \\Send third party request with object data. ie - id's
        obj.map( id => {
            \\call request routine
            requestRoutine(id)
        })

        \\Run final process
         runNecessaryUpdate(id)
    }

task. js


    checkTablesForData(){
        ...
    }

    requestRoutine(id){
        ...
    }

    runNecessaryUpdate(id){
        ...
    }

    module.exports = { runNecessaryUpdate, checkTablesForData, requestRoutine } 

Код для настройки API

приложение. js

    const express = require('express')
    const path = require('path')
    const app = express() //, api = express();
    const cors = require('cors');
    const bodyParser = require('body-parser');

    app.get('/', function(req, res){
        res.redirect('./api')
    })

    const api = require('./routes/api');
    app.use('/api', api)

    module.exports = app 

сервер. js

    const app = require('./app');

    const port = process.env.PORT  || 3000;

    app.listen(port, 'localhost', () => {
        console.log(`Server is running on port ${port}`);

    });

API . js


    const express = require('express');
    const router = express.Router();

    //Controller Modules
    const controller = require('../controllers/homeController');

    //Routes
    router.get('/request/:id', controller.post)



    module.exports = router;

контроллер. js


    //Send request to 3rd party api
    export.post = function(req, res){
        const options = {
            ....
        }

        return request(options)
        .then( response => {
            ...
        }
        .catch( error => {
            \\error routine
        }
    }

Советы очень необходимы.

Спасибо!

...