Общий вопрос.
Я хочу создать консольное приложение с 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
}
}
Советы очень необходимы.
Спасибо!