当前位置: 首页 > 后端技术 > Node.js

ExpressDocumentation(DatabaseIntegration)

时间:2023-04-03 15:13:30 Node.js

DatabaseIntegration添加连接数据库到Express应用程序的能力只需在应用程序中为数据库加载合适的Node.js驱动程序,本文档简要描述了如何为数据库系统添加和使用一些最流行的Node.js模块。这些数据库驱动程序是众多可用的驱动程序之一,如需其他选项,请在npm网站上搜索。Cassandra模块:cassandra-driver安装$npminstallcassandra-driver示例varcassandra=require('cassandra-driver')varclient=newcassandra.Client({contactPoints:['localhost']})client.execute('selectkeyfromsystem.local',function(err,result){if(err)throwerrconsole.log(result.rows[0])})Couchbase模块:couchnode安装$npminstallcouchbase示例varcouchbase=require('couchbase')varbucket=(newcouchbase.Cluster('http://localhost:8091')).openBucket('bucketName')//添加一个文档到bucketbucket.insert('document-key',{name:'Matt',shoeSize:13},function(err,result){if(err){console.log(err)}else{console.log(result)}})//获取鞋码为13的所有文件varn1ql='SELECTd.*FROM`bucketName`dWHEREshoeSize=$1'varquery=N1qlQuery.fromString(n1ql)bucket.query(query,[13],function(err,result){if(err){console.log(err)}else{console.log(result)}})CouchDB模块:nano安装$npminstallnano示例varnano=require('nano')('http://localhost:5984')nano.db.create('books')varbooks=nano.db.use('books')//在图书数据库books中插入图书文档.insert({name:'TheArtofwar'},null,function(err,body){if(err){console.log(err)}else{console.log(body)}})//得到一个所有图书的列表示例varlevelup=require('levelup')vardb=levelup('./mydb')db.put('name','LevelUP',function(err){if(err)returnconsole.log('Ooops!',err)db.get('name',function(err,value){if(err)returnconsole.log('Ooops!',err)console.log('name='+value)})})MySQL模块:mysql安装$npminstallmysql示例varmysql=require('mysql')varconnection=mysql.createConnection({host:'localhost',user:'dbuser',password:'s3kreee7',database:'my_db'});connection.connect()connection.query('SELECT1+1ASsolution',function(err,rows,fields){if(err)throwerrconsole.log('Thesolutionis:',rows[0].solution)})connection.end()MongoDB模块:mongodbinstall$npminstallmongodbexample(v2.*)varMongoClient=require('mongodb').MongoClientMongoClient.connect('mongodb://localhost:27017/animals',function(err,db){if(err)throwerrdb.collection('mammals').find().toArray(function(err,result){if(err)throwerrconsole.log(result)})})示例(v3.*)varMongoClient=require('mongodb').MongoClientMongoClient.connect('mongodb://localhost:27017/animals',function(err,client){if(err)throwerrvardb=client.db('animals')db.collection('mammals').find().toArray(function(err,result){if(err)throwerrconsole.log(result)})})如果你想要MongoDB的对象模型驱动,检查MongooseNeo4j模块:apocinstall$npminstallapocexamplevarapoc=require('apoc')apoc.query('match(n)returnn').exec().then(function(response){console.log(response)},function(fail){console.log(fail)})Oracle模块:oracledb安装注意:见安装先决条件。$npminstalloracledb示例constoracledb=require('oracledb');constconfig={user:'',//Updatemepassword:'',//UpdatemeconnectString:'localhost:1521/orcl'//更新我};asyncfunctiongetEmployee(empId){letconn;尝试{conn=awaitoracledb.getConnection(config);constresult=awaitconn.execute('select*fromemployeeswhereemployee_id=:id',[empId]);console.log(result.rows[0]);}catch(err){console.log('Ouch!',err);}finally{if(conn){//conn赋值成功,需要关闭awaitconn.close();}}}getEmployee(101);PostgreSQL模块:pg-promise安装$npminstallpg-promise示例varpgp=require('pg-promise')(/*options*/)vardb=pgp('postgres://username:password@host:port/database')db.one('SELECT$1ASvalue',123).then(function(data){console.log('DATA:',data.value)}).catch(函数(错误){console.log('ERROR:',error)})Redis模块:redis安装$npminstallredis示例varredis=require('redis')varclient=redis.createClient()client.on('error',function(err){console.log('Error'+err)})client.set('stringkey','stringval',redis.print)client.hset('hashkey','hashtest1','somevalue',redis.print)client.hset(['hashkey','hashtest2','someothervalue'],redis.print)client.hkeys('hashkey',function(err,replies){console.log(replies.length+'replies:')replies.forEach(function(reply,i){console.log(''+i+':'+reply)})client.quit()})SQLServer模块:繁琐安装$npminstalltedious示例varConnection=require('tedious').Connection;varRequest=require('tedious').Request;varconfig={userName:'your_username',//updatemepassword:'your_password',//更新我的服务器:'localhost'}varconnection=newConnection(config);connection.on('connect',function(err){if(err){console.log(err);}else{executeStateme新台币();}});functionexecuteStatement(){request=newRequest("select123,'helloworld'",function(err,rowCount){if(err){console.log(err);}else{console.log(rowCount+'行');}connection.close();});request.on('row',function(columns){columns.forEach(function(column){if(column.value===null){console.log('NULL');}else{console.log(column。价值);}});});connection.execSql(request);}SQLite模块:sqlite3安装$npminstallsqlite3示例varsqlite3=require('sqlite3').verbose()vardb=newsqlite3.Database(':memory:')db.serialize(function(){db.run('CREATETABLElorem(infoTEXT)')varstmt=db.prepare('INSERTINTOloremVALUES(?)')for(vari=0;i<10;i++){stmt.run('Ipsum'+i)}stmt.finalize()db.each('SELECTrowidASid,infoFROMlorem',function(err,row){console.log(row.id+':'+行。info)})})db.close()ElasticSearch模块:elasticsearch安安装$npminstallelasticsearch示例varelasticsearch=require('elasticsearch')varclient=elasticsearch.Client({host:'localhost:9200'})client.search({index:'books',type:'book',body:{query:{multi_match:{query:'expressjs',fields:['title','description']}}}}).then(function(response){varhits=response.hits.hits},function(错误){console.trace(error.message)})