Я прочитал много руководств и ответов на вопросы об этой же ситуации, но в каждом из них мы говорим об использовании скриптов или, в любом случае, запросов через PHP, но ни один из них не удовлетворяет моей ситуации. Позвольте мне объяснить свою ситуацию, у меня есть приложение CRUD и база данных MySQL на сервере node js, я собираюсь подключить приложение Android к той же базе данных на сервере, используя локальную базу данных SQLite, поэтому мои вопросы следующим образом.
Могу ли я синхронизировать свое приложение для Android или, лучше, мою базу данных SQLite с помощью тех же экспресс-запросов js, которые я отправляю в свою базу данных через веб-приложение?
Чтобы помочь вам лучше понять мой вопрос, у меня есть типичные запросы, выполняемые с помощью таких функций:
exports.listU = function(req, res){
req.getConnection(function(err,connection){
var query = connection.query('SELECT * FROM user',function(err,rows)
{
if (err)
console.info("Error Selecting : %s ",err );
res.render('user',{page_title:"users view",data:rows});
});
});
};
Могу ли я использовать его, возможно, используя его в более простом контексте, чем тот, который я использую для отображения моего списка пользователей в браузере, для получения JSON или чего-то в этом роде? Я подумал о создании простого HTML-экрана, который показывает результат этого запроса на видео, без кнопок, изображений и прочего, чтобы максимально упростить создание файла JSON и избежать появления этого экрана в маршрутизаторе моего веб-приложения. .
Я также открыт для других решений, если они не планируют использовать другие языки, такие как PHP, я хотел бы как можно больше придерживаться этих языков (android, node / express, javascript).
[РЕДАКТИРОВАТЬ] Можно ли отправить результат запроса через JSON через что-то подобное?
...
res.send(JSON.stringify(rows))
...
чтобы иметь возможность читать его в результате прямо из приложения для Android?
[решено] Может быть, это поможет кому-то в моей ситуации. Подход не сильно отличался от того, о чем я думал, используя javascript, очень похожий на предыдущий, с той разницей, что вместо выполнения рендеринга я отправил результат запроса через что-то вроде * res.send (JSON.stringify ( {"ответ": строки})); * Мне удалось просмотреть json-файл базы данных. Как только я это сделал, я просто «подключился» (через HttpURLConnection httpURLConnection = (HttpURLConnection) новый URL (URL) .openConnection ();) и прошел аутентификацию с моим приложением для Android, позже я управлял json-файлом, отображаемым на экране, выполнив его разделение и обновив поля моей внутренней базы данных SQLite в приложении для Android, через локальный запрос на вставку. Я рекомендую при обновлении внутренней базы данных каждый раз удалять и воссоздавать таблицы в локальной базе данных sqlite, чтобы избежать проблем с дублированием.
Я хотел бы предложить использовать фреймворк CouchDB, который обеспечивает быструю синхронизацию баз данных. Эта альтернатива намного лучше, чем использование отдельных БД, таких как: mysql или SQLite. Кроме того, объектом между интерфейсом является JSON, который предоставит вам гибкость в будущем для использования внешних фреймворков. CouchDB работает с NodeJS - с фреймворком npm nano.
CouchDB - это база данных, вместо использования SQLite или mysql вы можете использовать фреймворк как на стороне клиента, так и на стороне сервера, взаимодействие между ними осуществляется посредством JSON.
Спасибо за ваш ответ. Я посмотрел на то, что вы предложили, но боюсь, что мне все равно придется менять свой сервер MySQL, если я использую CouchDB, или есть способ использовать только CouchDB вместо SQLite на стороне Android?