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


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

18 90

18 ответов:

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

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

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

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

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

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

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

драйвер JavaScript MySQL Cluster для узла.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. VIEW: представление - это то, что мы видим, и оно должно быть полностью независимым от модели. Ему просто нужно показать данные, содержащиеся в модели, но у него не должно быть соответствующих данных. В этом случае представление использует HTML и CSS. HTML для создания базовой структуры представления и CSS для придания формы этой базовой структуре.
  3. : контроллер интерфейса между нашей моделью и нашим взглядом. В этом случае используется язык JavaScript, и он принимает данные, которые модель отправляет нам в виде пакета JSON, и помещает его в контейнеры, которые предлагают структуру HTML. Способ взаимодействия контроллера с моделью использует AJAX. Мы используем GET и POST методы для вызова PHP-скриптов на стороне сервера, а на данные, возвращаемые с сервера.

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

теперь

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

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

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

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

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

  • Умник: на этом сайте можно найти большой короткий учебники по JavaScript и его окружения. Это стоит попробовать. И делать скидки время от времени.
  • Школа Код: с бесплатным и очень интересным курсом о Chrome Developer tools, который поможет вам протестировать клиентскую сторону.
  • 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) внутри базы данных. Он очень быстрый и мощный. Проверьте это post.

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