Добрый день!
Пишу на node callback сервис, который принимает в диалоге фотографии, берет их ссылку и отправляет на mysql базу данных.
Столкнулся с такой проблемой, что с какой-то периодичностью, сервис отсылает в бд ссылки по несколько раз.
В чем может быть проблема?
Серверconst easyvk = require('easyvk');
const express = require('express');
const bodyParser = require('body-parser');
const api = require('vk-easy');
const send = require('./send');
const { PORT, CONFIRMATION, TOKEN } = require('./config');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
const proc = require('./messageProceed')
app.get('/renaissance/api', (req, res) => res.send('Hello World!'));
app.post('/renaissance/api', (req, res) => {
const { body } = req;
switch (body.type) {
case 'confirmation':
res.end(CONFIRMATION);
break;
default:
return proc(body.object);
break;
}
});
Обработка сообщенияconst send = require('./send.js');
const photoAPI = require('./actions/photo.js');
module.exports = async function( {from_id: userId, text, attachments: files, payload} ) {
if (files != null) {
for (i = 0; i < files.length; i++) {
//send(userId, 'Getting object...');
if (files[i].type == 'photo') {
photoAPI(files[i]);
}
}
}
return;
};
Отправка в бдconst easyVK = require('easyvk');
const send = require('../send');
const api = require('vk-easy');
const mysql = require('mysql');
module.exports = function ({ photo: item }) {
// на стиль решения не обращайте внимания, пока что я просто тестирую эти методы
if (item.photo_2560 != null) return client.query('INSERT INTO testtab (test, field, number) VALUES ("node",\"'+ item.photo_2560 +'\", 322)');
}
}
Сама бд, там должна быть одна ссылка, а не несколько, так как сообщение отправлено всего одно
Вот выше скинул пример, при отправке одного единственного сообщения, что я делаю не так?