Может ли JavaScript соединиться с MySQL? - PullRequest
101 голосов
/ 11 июня 2010

Может ли JavaScript соединиться с MySQL?Если да, то как?

Ответы [ 18 ]

79 голосов
/ 10 октября 2012

Клиентский JavaScript не может получить доступ к MySQL без какого-либо моста. Но приведенные выше смелые утверждения о том, что JavaScript - это просто язык на стороне клиента, неверны - JavaScript может работать на стороне клиента и на стороне сервера, как в случае с Node.js.

Node.js может получить доступ к MySQL через что-то вроде https://github.com/sidorares/node-mysql2

Вы также можете разработать что-нибудь с помощью Socket.IO

Вы хотели спросить, может ли клиентское JS-приложение получить доступ к MySQL? Я не уверен, что такие библиотеки существуют, но они возможны.

РЕДАКТИРОВАТЬ : с момента написания теперь у нас есть MySQL Cluster :

Драйвер MySQL Cluster JavaScript для Node.js - это то, чем он кажется, - это коннектор, который можно вызывать непосредственно из вашего кода JavaScript для чтения и записи ваших данных. Так как он обращается к узлам данных напрямую, нет никакой дополнительной задержки при прохождении через MySQL Server, и ему необходимо преобразовать объекты JavaScript-кода // в операции SQL. Если по какой-либо причине вы бы предпочли, чтобы он проходил через MySQL Server (например, если вы храните таблицы в InnoDB), то это можно настроить.

52 голосов
/ 20 августа 2013

ТО

Поскольку я понимаю вопрос и исправляю меня, если я ошибаюсь, это относится к классической модели сервера с JavaScript только на стороне клиента. В этой классической модели с серверами LAMP (Linux, Apache, MySQL, PHP) язык, соприкасающийся с базой данных, - PHP, поэтому для запроса данных в базу данных необходимо написать сценарии PHP и echo возвращающие данные клиенту. В основном, распределение языков по физическим машинам:

  1. Сторона сервера: PHP и MySQL.
  2. Клиентская сторона: HTML / CSS и JavaScript.

Это соответствует модели MVC (Модель, Представление, Контроллер), где у нас есть следующие функциональные возможности:

  1. МОДЕЛЬ: Модель - это то, что работает с данными, в данном случае с PHP-скриптами, которые управляют переменными или обращаются к данным, хранящимся, в нашем случае в нашей базе данных MySQL и отправляют их как данные JSON в клиент.
  2. VIEW: Представление - это то, что мы видим, и оно должно быть полностью независимым от модели. Ему просто нужно показать данные, содержащиеся в модели, но у него не должно быть соответствующих данных. В этом случае представление использует HTML и CSS. HTML для создания базовой структуры представления и CSS для придания формы этой базовой структуре.
  3. КОНТРОЛЛЕР: Контроллер является интерфейсом между нашей моделью и нашим представлением. В этом случае используется язык JavaScript, и он берет данные, которые модель отправляет нам в виде пакета JSON, и помещает их в контейнеры, которые предлагают структуру HTML. Для взаимодействия контроллера с моделью используется AJAX . Мы используем методы GET и POST для вызова сценариев PHP на стороне сервера и для получения возвращаемых данных с сервера.

Для контроллера у нас есть действительно интересные инструменты, такие как jQuery , как «низкоуровневая» библиотека для управления структурой HTML (DOM), а затем новые, более высокоуровневые, такие как Knockout. js , которые позволяют нам создавать наблюдателей, которые соединяют различные элементы DOM, обновляя их при возникновении событий. Существует также Angular.js от Google, который работает аналогичным образом, но, похоже, является полноценной средой. Чтобы помочь вам выбрать среди, здесь есть два превосходных анализа двух инструментов: Knockout vs. Angular.js и Knockout.js против Angular.js . Я все еще читаю. Надеюсь, они помогут вам.

NOW

На современных серверах, основанных на Node.js, мы используем JavaScript для всего. Node.js - это среда JavaScript со многими библиотеками, которые работают с Google V8, движком Chrome JavaScript. Как мы работаем с этими новыми серверами:

  1. Node.js и Express : Основной фрейм, на котором построен сервер. Мы можем создать сервер с несколькими строками кода или даже использовать библиотеки в качестве Express, чтобы сделать его еще проще. С помощью Node.js и Express мы будем управлять обращениями клиентов на сервер и отвечать на них соответствующими страницами.
  2. Jade : Для создания страниц мы используем язык шаблонов, в данном случае Jade, который позволяет нам писать веб-страницы так же, как мы писали HTML, но с различиями ( займет немного времени, но легко учиться). Затем в коде сервера для ответа на петиции клиента нам просто нужно преобразовать код Jade в «настоящий» HTML-код.
  3. Стилус : Аналогично Jade, но для css. В этом случае мы используем функцию промежуточного программного обеспечения для преобразования файла стилуса в настоящий файл CSS для нашей страницы.

Затем у нас есть множество пакетов, которые мы можем установить с помощью NPM (менеджер пакетов Node.js) и использовать их непосредственно на нашем сервере Node.js, просто требуя его (для те из вас, кто хочет изучать Node.js, попробуйте этот учебник для начинающих для обзора). И среди этих пакетов у вас есть некоторые из них для доступа к базам данных. Используя это, вы можете использовать JavaScript на стороне сервера для доступа к базам данных My SQL.

Но лучшее, что вы можете сделать, если собираетесь работать с Node.js, - это использовать новые базы данных NoSQL, такие как MongoDB , основанные на файлах JSON. Вместо того, чтобы хранить таблицы, такие как MySQL, он хранит данные в структурах JSON, поэтому вы можете помещать разные данные в каждую структуру, например, длинные числовые векторы, вместо этого создавая огромные таблицы размером с самую большую.

Я надеюсь, что это краткое объяснение станет полезным для вас, и если вы хотите узнать больше об этом, здесь у вас есть некоторые ресурсы, которые вы можете использовать:

  • Тупик : Этот сайт полон отличных коротких руководств по JavaScript и его среде. Это стоит попробовать. И делать скидки время от времени.
  • Code School : с бесплатным и очень интересным курсом об инструментах Chrome Developer, которые помогут вам протестировать клиентскую часть.
  • Codecademy : с бесплатными курсами по HTML, CSS, JavaScript, jQuery и PHP, с которыми вы можете ознакомиться в онлайн-примерах.
  • 10gen Образование : Со всем, что вам нужно знать о MongoDB в учебных пособиях для разных языков.
  • W3Schools : в этом руководстве есть учебники обо всем этом, и вы можете использовать его в качестве справочного места, поскольку в нем есть много кратких примеров кода, которые действительно полезны.
  • Udacity : место с бесплатными видео-курсами по различным предметам с несколькими интересными по веб-разработке и моим любимым, удивительным курсом WebGL для 3D-графики с JavaScript.

UPDATE!

Прямо сейчас, имея Node-сервер, если вы хотите общаться с базой данных MySQL, вы можете использовать библиотеку с именем mysql . Вы можете создавать запросы, как вы это делали с PHP, и вы можете попробовать его с помощью API-генератора , который я создал, который вы можете загрузить с помощью NPM. В нем есть мастер, который позволяет вам, среди прочего, выбрать, какие базы данных вы хотите использовать.

Надеюсь, это поможет вам начать.

Веселись!

23 голосов
/ 11 июня 2010

Нет, JavaScript не может напрямую подключиться к MySQL. Но вы можете смешать JS с PHP, чтобы сделать это.

JavaScript - это клиентский язык, и ваша база данных MySQL будет работать на сервере

8 голосов
/ 03 октября 2014

Немного поздно, но недавно я узнал, что MySql 5.7 получил плагин http, через который пользователь может напрямую подключиться к mysql.

Ищите Http Client для mysql 5.7

8 голосов
/ 11 июня 2010

Я думаю, вам нужно добавить что-то вроде PHP в уравнение. PHP для взаимодействия с базой данных, а затем вы можете делать вызовы AJAX с Javascript.

7 голосов
/ 11 июня 2010

Простой ответ: нет.

JavaScript - это язык на стороне клиента, который работает в браузере ( node.js *, несмотря на это), а MySQL - это технология на стороне сервера, которая работает насервер.

Это означает, что вы обычно используете серверный язык, такой как ASP.NET или PHP, для подключения к базе данных.

6 голосов
/ 11 июня 2012

ДА? Посмотри метеор. Ссылки:

http://meteor.com/screencast и http://net.tutsplus.com/tutorials/javascript-ajax/whats-this-meteor-thing/

Я не понимаю, как это делается. Но Nettuts + поместил эту вещь в раздел javascript-ajax, возможно, случится волшебство.

Также показан способ подключения и вставки в MongoDB с помощью JS, например:

Products.insert({Name : "Hammer", Price : 4.50, InStock : true});
Products.insert({Name : "Wrench", Price : 2.70, InStock : true});
Products.insert({Name : "Screw Driver", Price : 3.00, InStock : false});
Products.insert({Name : "Drill", Price : 5.25, InStock : true});
4 голосов
/ 24 марта 2016

Да. Есть плагин HTTP для MySQL.

http://blog.ulf -wendel.de / 2014 / MySQL-5-7-HTTP-плагин-MySQL /

Сейчас я просто гуглю по этому поводу, что и привело меня к этому вопросу о переполнении стека. Вы должны иметь возможность AJAX базы данных MySQL сейчас или в ближайшем будущем (они утверждают, что она не готова к производству).

4 голосов
/ 12 июля 2011

В зависимости от вашей среды вы можете использовать Rhino для этого, см. веб-сайт Rhino .Это дает вам доступ ко всем библиотекам Java из JavaScript.

1 голос
/ 11 марта 2016

Как правило, вам нужен серверный язык сценариев, такой как PHP, для подключения к MySQL, однако, если вы просто делаете быстрый макет, вы можете использовать http://www.mysqljs.com для подключения к MySQL из Javascript, используя код как следующим образом:

MySql.Execute(
    "mysql.yourhost.com", 
    "username", 
    "password", 
    "database", 
    "select * from Users", 
    function (data) {
        console.log(data)
});

Следует отметить, что это не безопасный способ доступа к MySql, и он подходит только для частных демонстраций или сценариев, когда конечный пользователь не может получить доступ к исходному коду, например, в приложениях Phonegap для iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...