с чем вы в итоге поехали? ниже приведена некоторая полезная информация, мне было бы интересно услышать, что вы испытали
Landon
7
@Landon, на самом деле пошел с node-mysql по нескольким причинам, главным образом потому, что он находится в довольно активной разработке и, кажется, наиболее широко используется. Мне тоже очень нравится эта multipleStatementsфункция.
crawf
@crawf Что вы предпочитаете, PHP или Node.js? Я перешел на PHP / MySQL, но думаю о переходе на узел, так как он будет гораздо более естественным, учитывая, что синтаксис - это синтаксис JS
oldboy
1
@Anthony Личные предпочтения, я полагаю, это зависит от экосистемы, в которой вы разрабатываете, от того, работаете ли вы в команде и т. Д. Этот оригинальный пост является древним, и многое изменилось в ландшафте Node, где он гораздо более распространен для фронта. и бэк-энд работа. Я бы сказал, если у вас есть время попробовать Node, и он отлично сочетается с такими вещами, как socket.io для веб-сокетов в реальном времени.
var mysql =require('mysql');var connection = mysql.createConnection({
host :'example.org',
user :'bob',
password :'secret',});
connection.connect(function(err){// connected! (unless `err` is set)});
Запросы:
var post ={id:1, title:'Hello MySQL'};var query = connection.query('INSERT INTO posts SET ?', post,function(err, result){// Neat!});
console.log(query.sql);// INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL'
+1 для узла-MySQL тоже. Что может быть лучше, чем просто requireиспользование библиотеки javascript
Alex K
4
@KevinLaity У меня сложилось впечатление, что в node-mysql еще не реализованы подготовленные операторы. Синтаксис выглядит так же . Вместо этого кажется, что на данный момент специальные символы экранированы.
funseiki
4
Кроме того, вы можете получить имя базы данных, добавив «database» к объекту подключения
felipekm
29
node-mysql , вероятно, является одним из лучших модулей для работы с базой данных MySQL, который активно поддерживается и хорошо документирован.
Поскольку это старая ветка, просто добавляем обновление:
Чтобы установить драйвер MySQL node.js:
Если вы просто запускаете npm install mysql, вы должны находиться в том же каталоге, что и ваш сервер. Я бы посоветовал сделать это, как в одном из следующих примеров:
Для глобальной установки:
npm install -g mysql
Для локальной установки:
1- Добавьте его в свои package.jsonзависимости:
"dependencies":{"mysql":"~2.3.2",...
2-бег npm install
Обратите внимание, что для установления соединений вам также необходимо запустить сервер MySQL (который не зависит от узла).
Чтобы установить сервер MySQL:
Существует множество учебных пособий, которые объясняют это, и это немного зависит от операционной системы. Просто зайдите в Google и искать how to install mysql server [Ubuntu|MacOSX|Windows]. Но в предложении: вы должны перейти на http://www.mysql.com/downloads/ и установить его.
Этот код кажется Cannot read property 'release' of undefined
испорченным
4
Imo, вы должны попробовать MySQL Connector / Node.js, который является официальным драйвером Node.js для MySQL. Смотрите ref-1 и ref-2 для подробного объяснения. Я пробовал mysqljs / mysql, который доступен здесь , но я не нахожу подробную документацию по классам, методам, свойствам этой библиотеки.
Поэтому я перешел на стандарт MySQL Connector/Node.jsс X DevAPI, поскольку это асинхронная клиентская библиотека на основе Promise и предоставляет хорошую документацию. Взгляните на следующий фрагмент кода:
const mysqlx =require('@mysql/xdevapi');const rows =[];
mysqlx.getSession('mysqlx://localhost:33060').then(session =>{const table = session.getSchema('testSchema').getTable('testTable');// The criteria is defined through the expression.return table.update().where('name = "bar"').set('age',50).execute().then(()=>{return table.select().orderBy('name ASC').execute(row => rows.push(row));});}).then(()=>{
console.log(rows);});
KnexJs можно использовать как построитель SQL-запросов как в Node.JS, так и в браузере. Я нахожу это простым в использовании. Давай попробуем - Knex.js
$ npm install knex --save
# Then add one of the following (adding a --save) flag:
$ npm install pg
$ npm install sqlite3
$ npm install mysql
$ npm install mysql2
$ npm install mariasql
$ npm install strong-oracle
$ npm install oracle
$ npm install mssql
var knex =require('knex')({
client:'mysql',
connection:{
host :'127.0.0.1',
user :'your_database_user',
password :'your_database_password',
database :'myapp_test'}});
Вы также можете попробовать новую работу, известную как Node.js DB, которая призвана обеспечить общую платформу для нескольких механизмов баз данных. Он построен на C ++, поэтому производительность гарантирована.
node-db больше не поддерживается (неактивен в течение 8 месяцев, использует устаревший node-waf), и установка не удалась для меня.
Йогу
18
«Он построен на C ++, поэтому производительность гарантирована» - простое использование C ++ не гарантирует производительность, его все равно нужно программировать правильно.
developerbmw
Мало того, что node-db не поддерживается, ссылка не работает - только что перенаправлена на какой-то рекламный сайт. Downvoting.
nurdglaw
2
@Mariano, Link Down
Pacerier
0
подключите базу данных mysql, установив библиотеку. здесь выбран стабильный и простой в использовании модуль node-mysql.
npm install mysql@2.0.0-alpha2
var http =require('http'),
mysql =require('mysql');var sqlInfo ={
host:'localhost',
user:'root',
password:'urpass',
database:'dbname'}
client = mysql.createConnection(sqlInfo);
client.connect();
Насколько я знаю, альфа-релизы никогда не следует рассматривать как «стабильные». Поправьте меня если я ошибаюсь. У Alpha есть возможность кардинально изменить свой API, прежде чем перейти к финальной версии, что крайне нежелательно при написании кода (и даже при разработке). То есть, если нумерация версий соответствует рекомендациям semver.org .
Робин ван Баален
1
«умные» кавычки ('') оказываются не такими уж умными в js-файлах.
глиф
Мне нравится этот комментарий, потому что он показывает, где поставить имя базы данных
Борис Иванов
0
Вы можете пропустить ORM, сборщики и т. Д. И упростить управление БД / SQL с помощью sqlerи sqler-mdb.
-- create this file at: db/mdb/setup/create.database.sqlCREATEDATABASEIFNOTEXISTS sqlermysql
const conf ={"univ":{"db":{"mdb":{"host":"localhost","username":"admin","password":"mysqlpassword"}}},"db":{"dialects":{"mdb":"sqler-mdb"},"connections":[{"id":"mdb","name":"mdb","dir":"db/mdb","service":"MySQL","dialect":"mdb","pool":{},"driverOptions":{"connection":{"multipleStatements":true}}}]}};// create/initialize managerconst manager =newManager(conf);await manager.init();// .sql file path is path to db functionconst result =await manager.db.mdb.setup.create.database();
console.log('Result:', result);// after we're done using the manager we should close it
process.on('SIGINT',asyncfunction sigintDB(){await manager.close();
console.log('Manager has been closed');});
multipleStatements
функция.Ответы:
Проверьте список модулей node.js
node-mysql выглядит достаточно просто:
Запросы:
источник
require
использование библиотеки javascriptnode-mysql , вероятно, является одним из лучших модулей для работы с базой данных MySQL, который активно поддерживается и хорошо документирован.
источник
Поскольку это старая ветка, просто добавляем обновление:
Чтобы установить драйвер MySQL node.js:
Если вы просто запускаете
npm install mysql
, вы должны находиться в том же каталоге, что и ваш сервер. Я бы посоветовал сделать это, как в одном из следующих примеров:Для глобальной установки:
Для локальной установки:
1- Добавьте его в свои
package.json
зависимости:2-бег
npm install
Обратите внимание, что для установления соединений вам также необходимо запустить сервер MySQL (который не зависит от узла).
Чтобы установить сервер MySQL:
Существует множество учебных пособий, которые объясняют это, и это немного зависит от операционной системы. Просто зайдите в Google и искать
how to install mysql server [Ubuntu|MacOSX|Windows]
. Но в предложении: вы должны перейти на http://www.mysql.com/downloads/ и установить его.источник
npm install --save mysql
установит его и добавит к вашемуpackage.json
автоматическиВот производственный код, который может вам помочь.
Package.json
Вот файл сервера.
Ссылка: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/
источник
Cannot read property 'release' of undefined
Imo, вы должны попробовать MySQL Connector / Node.js, который является официальным драйвером Node.js для MySQL. Смотрите ref-1 и ref-2 для подробного объяснения. Я пробовал mysqljs / mysql, который доступен здесь , но я не нахожу подробную документацию по классам, методам, свойствам этой библиотеки.
Поэтому я перешел на стандарт
MySQL Connector/Node.js
сX DevAPI
, поскольку это асинхронная клиентская библиотека на основе Promise и предоставляет хорошую документацию. Взгляните на следующий фрагмент кода:источник
KnexJs можно использовать как построитель SQL-запросов как в Node.JS, так и в браузере. Я нахожу это простым в использовании. Давай попробуем - Knex.js
Вы можете использовать это так
или
источник
Вы также можете попробовать новую работу, известную как Node.js DB, которая призвана обеспечить общую платформу для нескольких механизмов баз данных. Он построен на C ++, поэтому производительность гарантирована.
В частности , вы можете использовать свой драйвер DB-MySQL для поддержки Node.js MySQL .
источник
подключите базу данных mysql, установив библиотеку. здесь выбран стабильный и простой в использовании модуль node-mysql.
Для примера подключения и запроса NodeJS mysql
источник
Вы можете пропустить ORM, сборщики и т. Д. И упростить управление БД / SQL с помощью
sqler
иsqler-mdb
.источник