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

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

18 ответов


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

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


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

узел.для доступа к MySQL через что-то вроде https://github.com/sidorares/node-mysql2

вы также можете разработать что-то с помощью сокета.ИО

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

редактировать: С момента написания, у нас теперь есть MySQL Cluster:

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


затем

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

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

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

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

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

теперь

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

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

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

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

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

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

обновление!

прямо сейчас, имея сервер узлов, Если вы хотите общаться с базой данных MySQL, вы можете использовать библиотеку под названием в MySQL. Вы можете создавать запросы, как это было с PHP, и вы можете попробовать его с помощью генератор API Я создал, что вы можете скачать с помощью npm. Он имеет мастер, который позволяет вам выбрать, какие базы данных вы хотите использовать, среди прочего.

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

удачи!


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


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

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

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


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

ищите Http-клиент для mysql 5.7


да? Взгляните на метеор. Ссылки:

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});

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


да. Существует плагин HTTP для MySQL.

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

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


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


нет.

вам нужно написать оболочку в 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-инъекциях, пожалуйста.


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

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


JavaScript не может напрямую подключаться к БД для получения необходимых данных, но вы можете использовать AJAX. Чтобы сделать простой запрос AJAX на сервер, вы можете использовать jQuery JS framework 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);

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


Как правило, вам нужен серверный язык сценариев, такой как 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 приложения.


Я понял ваш вопрос, я думаю, вы путаете его с такими языками, как dot.net и java, где вы можете открыть соединение с БД в своем коде. Нет, JavaScript не может напрямую подключаться к MySQL, поскольку JavaScript является языком сценариев на стороне клиента (узел исключения.в JS).Для доступа к данным вам нужен средний уровень, такой как RESTful API.


Да, вы можете. Соединители MySQL используют TCP для соединения, и в JS есть немного измененная версия клиента TCP под названием Websocket. Но вы не можете напрямую подключиться к серверу MySQL с помощью websocket. Вам понадобится какой-то сторонний мост между websocket и mysql. Он получает запрос от websocket, отправляет его в mysql, результат ответа и повторно отправляет в JS.

и это мой пример моста, написанный на C# с библиотекой websocket-sharp:

class JSQLBridge : WebSocketBehavior
{
    MySqlConnection conn;

    protected override void OnMessage(MessageEventArgs e)
    {
        if (conn == null)
        {
            try
            {
                conn = new MySqlConnection(e.Data);
                conn.Open();
            }
            catch (Exception exc)
            {
                Send(exc.Message);
            }
        }
        else
        {
            try
            {
                MySqlCommand cmd = new MySqlCommand(e.Data, conn);
                cmd.ExecuteNonQuery();
                Send("success");
            }
            catch (Exception exc)
            {
                Send(exc.Message);
            }
        }
    }

    protected override void OnClose(CloseEventArgs e)
    {
        if (conn != null)
            conn.Close();
    }
}

JS сторона:

var ws = new WebSocket("ws://localhost/");

ws.send("server=localhost;user=root;database=mydb;");

ws.send("select * from users");

вы можете добавить соединение mysql, используя PHP-файл. Ниже приведен пример файла PHP.

<?php
   $con = mysql_connect('localhost:3306', 'dbusername', 'dbpsw');
   mysql_select_db("(dbname)", $con);

   $sql="SELECT * FROM table_name";

   $result = mysql_query($sql);

   echo " <table border='1'>
   <tr>
   <th>Header of Table name</th>
   </tr>";

   while($row = mysql_fetch_array($result))
   {
     echo "<tr>";
     echo "<td>" . $row['(database_column_name)'] . "</td>";
     echo "<td>" . $row['database_column_name'] . "</td>";
     echo "</tr>";
    }
    echo "</table>";
    mysql_close($con);
   ?> }