Добрый день. Необходимо сделать так, чтоб GET запрос отправлялся каждые 10 секунд, в последствии нужно будет проверять есть ли такие данные в базе и сохранять их туда, если их не было. Но пока что, просто нужно, чтоб гет запрос к урлу отправлялся каждые 10 секунд и рендерил новые данные. Запнулся и не понимаю куда копать.. Использую Express, Mongoose и Socket IO
app.js: ( код, который сохраняет в бд данные закоментировал )
var tender = new mongoose.Schema({
tenderId: String,
tenderDate: String
});
var Tenders = mongoose.model("Tenders", tender);
let offset = new Date().toISOString();
let url = 'http://public.api.openprocurement.org/api/2.4/tenders?offset=' + offset + '+02.00';
router.get('/', function (req, res, next) {
request.get(url, function (err, response, body) {
if (err || response.statusCode !== 200) {
return res.sendStatus(500);
}
body = JSON.parse(body);
let tendersList = [];
body.data.forEach(function (item) {
let tendersData = new Tenders({
tenderId: item.id,
tenderDate: item.dateModified
});
tendersList.push(tendersData);
});
// Tenders.insertMany(tendersList)
// .then(item => {
// console.log("Saved to db")
// })
// .catch(err => {
// throw new Error;
// });
res.render('index', {tenders: body});
});
});
router.get('/tender/:id', function (req, res, next) {
let id = req.params.id;
request.get('http://public.api.openprocurement.org/api/2.4/tenders/' + id, function (err, response, body) {
if (err || response.statusCode !== 200) {
return res.sendStatus(500);
}
body = JSON.parse(body);
res.redirect('https://prozorro.gov.ua/tender/' + body.data.tenderID);
});
});
app.use(function (err, req, res, next) {
if (app.get('env') == 'development') {
let errorHandler = express.errorHandler();
errorHandler(err, req, res, next);
} else {
res.send(500);
}
});
var server = http.createServer(app);
server.listen(config.get('port'), function () {
log.info('Express server listening on port ' + config.get('port'));
});
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
setInterval( function () {
socket.emit('tenders');
}, 5000);
});
index.ejs:
<% if (tenders.data) { %>
<% tenders.data.forEach(function(obj){ %>
<li style="list-style-type: none;"><%= obj.id %></li>
<li style="list-style-type: none; margin-bottom: 10px;"><%= obj.dateModified%></li>
<li style="list-style-type: none; margin-bottom: 15px; display: inline-block; background: none;"><a style="text-decoration: none; border: 2px solid #00b3ee; color: #00b3ee; padding: 5px 10px; text-align: center;" href="tender/<%= obj.id %>">See tender</a></li><br>
<% }); %>
<% } %>
<script src = "../socket.io/socket.io.js"></script>
<script>
var socket = io.connect();
socket.on('tenders', function (data) {
console.log(data);
});
</script>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Скрипт получает переменную и сравнивает ее со значением, и при равенстве выполняет код else if(result === 'Сколько времени'){
Как можно получить хэш сервера Minecraft? Почитал здесь (Server ID String), но ничего не понялПишу на PHP