Nội dung bài viết
Video học lập trình mỗi ngày
Mỗi một dự án, mỗi một webservice cũng đều kết nối ít nhất một hay nhiều database. Việc lựa chọn database nào cho dự án phù hợp thì tuỳ thuộc vào bạn. Ở bài viết này, chúng tôi sẽ hướng dẫn cách connect database với nodejs với nhiều database như: Cassandra, Couchbase, CouchDB, LevelDB, MySQL, MongoDB...
Connect node js with Oracle
Module: oracledb Installation
$ npm install oracledb
const oracledb = require('oracledb') const config = { user: '', password: '', connectString: 'localhost:1521/orcl' } async function getEmployee (empId) { let conn try { conn = await oracledb.getConnection(config) const result = await conn.execute( 'select * from employees where employee_id = :id', [empId] ) console.log(result.rows[0]) } catch (err) { console.log('Ouch!', err) } finally { if (conn) { // conn assignment worked, need to close await conn.close() } } } getEmployee(101)
Mongodb nodejs
Module: mongodb Installation
$ npm install mongodb
Example (v2.*)
var MongoClient = require('mongodb').MongoClient MongoClient.connect('mongodb://localhost:27017/animals', function (err, db) { if (err) throw err db.collection('mammals').find().toArray(function (err, result) { if (err) throw err console.log(result) }) })
Example (v3.*)
var MongoClient = require('mongodb').MongoClient MongoClient.connect('mongodb://localhost:27017/animals', function (err, client) { if (err) throw err var db = client.db('animals') db.collection('mammals').find().toArray(function (err, result) { if (err) throw err console.log(result) }) })
Ngoài ra bạn có thể connect với một object model driver for MongoDB đó là Mongoose.
Mysql nodejs
Module: mysql Installation
Đọc thêm: Connect Mysql Nodejs: Convert callback to async/await
$ npm install mysql
Example
var mysql = require('mysql') var connection = mysql.createConnection({ host: 'localhost', user: 'dbuser', password: 's3kreee7', database: 'my_db' }) connection.connect() connection.query('SELECT 1 + 1 AS solution', function (err, rows, fields) { if (err) throw err console.log('The solution is: ', rows[0].solution) }) connection.end()
Elasticsearch Nodejs
Module: elasticsearch Installation
$ npm install elasticsearch
Example
var elasticsearch = require('elasticsearch') var client = elasticsearch.Client({ host: 'localhost:9200' }) client.search({ index: 'books', type: 'book', body: { query: { multi_match: { query: 'express js', fields: ['title', 'description'] } } } }).then(function (response) { var hits = response.hits.hits }, function (error) { console.trace(error.message) })
SQLite Nodejs
Module: sqlite3 Installation
$ npm install sqlite3
Example
var sqlite3 = require('sqlite3').verbose() var db = new sqlite3.Database(':memory:') db.serialize(function () { db.run('CREATE TABLE lorem (info TEXT)') var stmt = db.prepare('INSERT INTO lorem VALUES (?)') for (var i = 0; i < 10; i++) { stmt.run('Ipsum ' + i) } stmt.finalize() db.each('SELECT rowid AS id, info FROM lorem', function (err, row) { console.log(row.id + ': ' + row.info) }) }) db.close()
SQL Server Nodejs
Module: tedious Installation
$ npm install tedious
Example
var Connection = require('tedious').Connection var Request = require('tedious').Request var config = { server: 'localhost', authentication: { type: 'default', options: { userName: 'your_username', // update me password: 'your_password' // update me } } } var connection = new Connection(config) connection.on('connect', function (err) { if (err) { console.log(err) } else { executeStatement() } }) function executeStatement () { request = new Request("select 123, 'hello world'", function (err, rowCount) { if (err) { console.log(err) } else { console.log(rowCount + ' rows') } connection.close() }) request.on('row', function (columns) { columns.forEach(function (column) { if (column.value === null) { console.log('NULL') } else { console.log(column.value) } }) }) connection.execSql(request) }
Redis Nodejs
Đọc thêm: Vì sao nói Redis là kẻ huỷ diệt
Module: redis Installation
$ npm install redis
Example
var redis = require('redis') var client = redis.createClient() client.on('error', function (err) { console.log('Error ' + err) }) client.set('string key', 'string val', redis.print) client.hset('hash key', 'hashtest 1', 'some value', redis.print) client.hset(['hash key', 'hashtest 2', 'some other value'], redis.print) client.hkeys('hash key', function (err, replies) { console.log(replies.length + ' replies:') replies.forEach(function (reply, i) { console.log(' ' + i + ': ' + reply) }) client.quit() })
PostgreSQL Nodejs
Module: pg-promise Installation
$ npm install pg-promise
Example
var pgp = require('pg-promise')(/* options */) var db = pgp('postgres://username:password@host:port/database') db.one('SELECT $1 AS value', 123) .then(function (data) { console.log('DATA:', data.value) }) .catch(function (error) { console.log('ERROR:', error) })
Neo4j Nodejs
Module: apoc Installation
$ npm install apoc
Example
var apoc = require('apoc') apoc.query('match (n) return n').exec().then( function (response) { console.log(response) }, function (fail) { console.log(fail) } )
LevelDB Nodejs
Module: levelup Installation
$ npm install level levelup leveldown
Example
var levelup = require('levelup') var db = levelup('./mydb') db.put('name', 'LevelUP', function (err) { if (err) return console.log('Ooops!', err) db.get('name', function (err, value) { if (err) return console.log('Ooops!', err) console.log('name=' + value) }) })
CouchDB
Module: nano Installation
$ npm install nano
Example
var nano = require('nano')('http://localhost:5984') nano.db.create('books') var books = nano.db.use('books') // Insert a book document in the books database books.insert({ name: 'The Art of war' }, null, function (err, body) { if (err) { console.log(err) } else { console.log(body) } }) // Get a list of all books books.list(function (err, body) { if (err) { console.log(err) } else { console.log(body.rows) } })
Couchbase
Module: couchnode Installation
$ npm install couchbase
Example
var couchbase = require('couchbase') var bucket = (new couchbase.Cluster('http://localhost:8091')).openBucket('bucketName') // add a document to a bucket bucket.insert('document-key', { name: 'Matt', shoeSize: 13 }, function (err, result) { if (err) { console.log(err) } else { console.log(result) } }) // get all documents with shoe size 13 var n1ql = 'SELECT d.* FROM `bucketName` d WHERE shoeSize = $1' var query = N1qlQuery.fromString(n1ql) bucket.query(query, [13], function (err, result) { if (err) { console.log(err) } else { console.log(result) } })
Cassandra
Module: cassandra-driver Installation
$ npm install cassandra-driver
Example
var cassandra = require('cassandra-driver') var client = new cassandra.Client({ contactPoints: ['localhost'] }) client.execute('select key from system.local', function (err, result) { if (err) throw err console.log(result.rows[0]) })
Source: expressjs.com