Ссылка localhost api не работает при обновлении или получении данных из БД в NodeJS - PullRequest
0 голосов
/ 21 мая 2019

У меня есть экспресс-сервер, который обновляет MySQL DB каждые 60 секунд, Сервер также получает данные из AWS RDS.

Когда я запускаю сервер, он работает нормально и http://localhost:3100 возвращает ответ. Но как только функция updateDB вызывается после 60 секунд, местный хост просто продолжает ждать.

  1. Полезно ли обновлять БД, вызывая функцию, которая фактически вызывая еще три функции в другом модуле. Если не какое наилучшее из возможных решений.

  2. Что является причиной проблемы и какие изменения я должен внести в код?

server.js

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

const updateDB = require('./updatedb/updateData')
const port = process.env.PORT || 3100

const updateDatabase = () => {
    setInterval(() => {
        updateDB.updateDB()
    }, 60000)
}
updateDatabase()

const server = http.createServer(app);

server.listen(port, () => {
    console.log(`Gateway is ready on ${port}`)
})

app.js

const express = require('express')
const cors = require('cors')

const app = express()
const assetRoutes = require('./routes/assetsRoutes')
const exchangesRoutes = require('./routes/exchangeRoutes')

var corsOptions = {
    origin: "*",
    optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
};

app.use('/assets', cors(corsOptions), assetRoutes)
app.use('/exchanges', cors(corsOptions), exchangesRoutes)

module.exports = app;

updateDB.js - этот модуль вызывает на 3 функции больше, чем экспортируется на server.js и каждые 60 секунд вызывается для обновления БД.

const updateAllTickers = require('../exchanges/quote/updateDB')
const updateCombinedSupply =require('../models/circulatingsupply/combinedcSupplyUpdate') 
const updatePriceChangePercentage = require('../models/updatePriceChangePercentage')

const updateDB = () => {
    updateAllTickers.updateExchangeTickers()
    updateCombinedSupply.updateCombinedSupply()
    updatePriceChangePercentage.updatePriceChange()
}

module.exports = ({
    updateDB: updateDB
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...