it-swarm.com.ru

Может ли JavaScript соединиться с MySQL?

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

96
Anonymous the Great

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

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

23
konradowy

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

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

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

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

EDIT: С момента написания у нас теперь есть MySQL Cluster :

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

74
LeeGee

ЗАТЕМ

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

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

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

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

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

СЕЙЧАС

На современных серверах, основанных на 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. Stylus : Аналогично Jade, но для CSS. В этом случае мы используем функцию промежуточного программного обеспечения, чтобы преобразовать файл стилуса в настоящий файл CSS для нашей страницы.

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

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

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

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

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

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

Повеселись!.

Have fun!

51
Timbergus

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

8
Kerry

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

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

7
Atul Chaudhary

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

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

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

7
Dean Harding

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

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});
6
Ivan Wang

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

http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/

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

4
Nick Manning

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

4
Kusmeroglu

Вы можете отправлять запросы AJAX в некоторые серверные оболочки RESTful для MySQL, такие как DBSlayer , PhpRestSQL или ТакжеSQL (для Drizzle , форк MySQL ).

1
niutech

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

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

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

0
Fiach Reid

JavaScript не может подключиться напрямую к БД для получения необходимых данных, но вы можете использовать AJAX. Для упрощения запроса AJAX к серверу вы можете использовать инфраструктуру jQuery JS http://jquery.com . Вот небольшой пример

JS:

jQuery.ajax({
type: "GET",
dataType: "json",
url: '/ajax/usergroups/filters.php',
data: "controller=" + controller + "&view=" + view,
success: function(json)
{
    alert(json.first);
    alert(json.second);
});

PHP:

$out = array(); 
$out['first']   = 'first value';
$out['second']   = 'second value';
echo json_encode($out);
0
Octan

Вы можете подключиться к MySQL из Javascript через апплет Java. Апплет Java будет включать драйвер JDBC для MySQL, который позволит вам подключаться к MySQL. 

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

0
Rajiv

Если вы не заблокированы на MySQL, вы можете переключиться на PostgreSQL. Он поддерживает процедуры JavaScript (PL/V8) внутри базы данных. Это очень быстро и мощно. Оформить заказ пост .

0
ramigg

Нет.

Вам нужно написать оболочку на PHP, а затем экспортировать возвращенные данные (вероятно, как Json). НИКОГДА не получайте от своего «_GET» кода SQL, так как это называется инъекцией SQL (люди, которые изучат это, будут иметь полный контроль над вашей базой данных).

Это пример, который я написал:

function getJsonData()
{
        global $db;
        if (!$db->isConnected()) {
               return "Not connected";
        }
        $db->query("SELECT * FROM entries");
        $values = array();
        while( $v = $db->fetchAssoc()){
                $values[] = $v;
        }
        return json_encode($values);    
}

switch (@$_GET["cmd"]){
        case 'data':
                print getJsonData();
                exit;

        default:
                print getMainScreen();
                exit; 
}

Узнайте, пожалуйста, об SQL-инъекциях.

0
elcuco