मैं अभी Node.js. में आने लगा हूँ मैं एक PHP बैकग्राउंड से आता हूं, इसलिए मैं अपने सभी डेटाबेस की जरूरतों के लिए MySQL का उपयोग करने के लिए काफी अभ्यस्त हूं।
मैं MySQL को Node.js के साथ कैसे उपयोग कर सकता हूं?
multipleStatements
समारोह की तरह ।
मैं अभी Node.js. में आने लगा हूँ मैं एक PHP बैकग्राउंड से आता हूं, इसलिए मैं अपने सभी डेटाबेस की जरूरतों के लिए MySQL का उपयोग करने के लिए काफी अभ्यस्त हूं।
मैं MySQL को Node.js के साथ कैसे उपयोग कर सकता हूं?
multipleStatements
समारोह की तरह ।
जवाबों:
की जाँच करें Node.js मॉड्यूल सूची
नोड- mysql काफी सरल दिखता है:
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'
require
एक जावास्क्रिप्ट लाइब्रेरी से बेहतर क्या हो सकता है
नोड- mysql संभवतः MySQL डेटाबेस के साथ काम करने के लिए उपयोग किए जाने वाले सबसे अच्छे मॉड्यूल में से एक है जिसे सक्रिय रूप से बनाए रखा जाता है और अच्छी तरह से प्रलेखित किया जाता है।
चूँकि यह केवल एक अद्यतन जोड़ने का एक पुराना धागा है:
यदि आप बस चलाते हैं npm install mysql
, तो आपको उसी निर्देशिका में रहना होगा जो आपका सर्वर चलाए। मैं निम्नलिखित उदाहरणों में से एक में इसे करने की सलाह दूंगा:
npm install -g mysql
1- package.json
निर्भरता में इसे अपने लिए जोड़ें :
"dependencies": {
"mysql": "~2.3.2",
...
2- दौड़ npm install
ध्यान दें कि होने वाले कनेक्शनों के लिए आपको mysql सर्वर चलाना होगा (जो नोड स्वतंत्र है)
वहाँ ट्यूटोरियल का एक समूह है जो इसे समझाते हैं, और यह ऑपरेटिव सिस्टम पर थोड़ा निर्भर है। बस Google पर जाएं और खोजें how to install mysql server [Ubuntu|MacOSX|Windows]
। लेकिन एक वाक्य में: आपको http://www.mysql.com/downloads/ पर जाना है और इसे इंस्टॉल करना है।
npm install --save mysql
इसे अपने package.json
आप स्थापित कर देगा
यहां उत्पादन कोड है जो आपकी मदद कर सकता है।
Package.json
{
"name": "node-mysql",
"version": "0.0.1",
"dependencies": {
"express": "^4.10.6",
"mysql": "^2.5.4"
}
}
यहाँ सर्वर फ़ाइल है।
var express = require("express");
var mysql = require('mysql');
var app = express();
var pool = mysql.createPool({
connectionLimit : 100, //important
host : 'localhost',
user : 'root',
password : '',
database : 'address_book',
debug : false
});
function handle_database(req,res) {
pool.getConnection(function(err,connection){
if (err) {
connection.release();
res.json({"code" : 100, "status" : "Error in connection database"});
return;
}
console.log('connected as id ' + connection.threadId);
connection.query("select * from user",function(err,rows){
connection.release();
if(!err) {
res.json(rows);
}
});
connection.on('error', function(err) {
res.json({"code" : 100, "status" : "Error in connection database"});
return;
});
});
}
app.get("/",function(req,res){-
handle_database(req,res);
});
app.listen(3000);
संदर्भ: https://codeforgeek.com/2015/01/nodejs-mysql-tutorial/
Cannot read property 'release' of undefined
KnexJs को Node.JS और ब्राउज़र दोनों में SQL क्वेरी बिल्डर के रूप में उपयोग किया जा सकता है। मुझे इसका उपयोग करना आसान लगता है। इसे आज़माएं - 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'
}
});
आप इसे इस तरह से उपयोग कर सकते हैं
knex.select('*').from('users')
या
knex('users').where({
first_name: 'Test',
last_name: 'User'
}).select('id')
Imo, आपको MySQL कनेक्टर / Node.js की कोशिश करनी चाहिए जो MySQL के लिए आधिकारिक Node.js ड्राइवर है। विस्तृत विवरण के लिए Ref-1 और Ref-2 देखें । मैंने mysqljs / mysql की कोशिश की है जो यहाँ उपलब्ध है , लेकिन मुझे इस लाइब्रेरी की कक्षाओं, विधियों, गुणों के बारे में विस्तृत दस्तावेज़ नहीं मिले हैं।
इसलिए मैंने मानक के MySQL Connector/Node.js
साथ स्विच किया X DevAPI
, क्योंकि यह एक एसिंक्रोनस प्रॉमिस-आधारित क्लाइंट लाइब्रेरी है और अच्छा प्रलेखन प्रदान करता है। निम्नलिखित कोड स्निपेट पर एक नज़र डालें:
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);
});
आप एक नया प्रयास भी कर सकते हैं जिसे Node.js DB के रूप में जाना जाता है जिसका उद्देश्य कई डेटाबेस इंजनों के लिए एक सामान्य ढांचा प्रदान करना है। यह C ++ के साथ बनाया गया है, इसलिए प्रदर्शन की गारंटी है।
विशेष रूप से आप इसके db-mysql ड्राइवर का उपयोग Node.js MySQL समर्थन के लिए कर सकते हैं ।
लाइब्रेरी स्थापित करके mysql डेटाबेस कनेक्ट करें। यहाँ, उठाया और नोड- 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();
आप ORM, बिल्डरों आदि को छोड़ सकते हैं और अपने DB / SQL प्रबंधन का उपयोग करके sqler
और सरल कर सकते हैं sqler-mdb
।
-- create this file at: db/mdb/setup/create.database.sql
CREATE DATABASE IF NOT EXISTS 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 manager
const manager = new Manager(conf);
await manager.init();
// .sql file path is path to db function
const 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', async function sigintDB() {
await manager.close();
console.log('Manager has been closed');
});