2.mongodb数据库链接

一.链接到数据库–connect

  1. mongoose用来操作mongodb数据库的模块.

    使用require加载模块

    const mongo = require('mongoose');
    
  2. 链接到MongoDB server–connect连接

    标准语法:

    mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
    
  • mongodb:// 这是固定格式必须要指定
  • username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试去登录这个数据库
  • host1(主机) 必须指定至少一个host,host1是这个URL唯一要填写的.它指定了连接服务器的地址.如果要连接复制集,请指定多个主机地址.
  • portx 可选的指定端口,如果不填默认27017
  • /database 如果指定username:password@,连接并验证登录指定的数据库.若不指定,默认打开test数据库.
  • ?options 是连接选项.如果不使用/database,则前边需要加上/.所有连接选项都是键值对name=value,键值对之间通过&或者;(分号)隔开.

实例:首先确定mongoose模块已经下载,并且已经使用ruquire加载了

  • mongo==>mongoose,上边已经引用了
  • connect:链接
  • mongodb://127.0.0.1:27017/stu:创建一个名字叫stu的数据库
  • function:链接完成之后的回调函数
mongo.connect('mongodb://127.0.0.1:27017/stu',function(){
    console.log("链接完成");
})

这时链接成功了但是会出现两个警告
在这里插入图片描述

  • 第一个警告是 deprecationwarning:当前URL字符串分析器已弃用,将在将来的版本中删除。要使用新的解析器,请将选项{usenewurlparser:true}传递给mongoclient.connect。

    • 前边的翻译可以不用看,解决方案就是在连接中加入{useNewUrlParser: true}.
  • 第二个警告 弃用警告:当前服务器发现和监视引擎已弃用,将在将来的版本中删除。要使用新的服务器发现和监视引擎,请将选项{useUnifiedTopology:true}传递给mongoclient构造函数。

    • 解决方案在连接中加入useUnifiedTopology: true }
  • 解决之后的代码:

mongo.connect('mongodb://127.0.0.1:27017/stu',{ useNewUrlParser: true , useUnifiedTopology: true ,useCreateIndex:true},function(){    console.log("链接完成");});

虽然数据库连接成功也创建了stu数据库,但是这时打开数据库发现并没有stu这个库.原因是因为数据库还没有数据,要往里边添加数据才能显示

二.将mongoose内置的promise对象手动修改为ES6的promise对象

mongo.Promise = global.Promise;//promise诺言
  1. 为什么要修改成ES6的promise的对象哪,我们打开官网可以查看.官网中已经说明在不就的将来将废弃掉,如果想用就用ES6的.无论后边对数据库做什么操作,只要没链接成功,程序就会进入暂停状态.

  2. 什么是promise?

    • promise是异步编程的解决方法.
    • 从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本质上讲,它是一种承诺,承诺它过段时间会给你一个结果.
    • promise有三种状态:pending(等待态),fulfiled(成功态),rejected(失败态);状态一旦改变,就不会再变。创造promise实例后,它会立即执行。
  3. promise的作用:用来解决两个问题

    • 多个回调函数,常常第一个函数的输出是第二个函数的输入这个现象

      请求1(function(请求结果1){
          请求2(function(请求结果2){
              请求3(function(请求结果3){
                  请求4(function(请求结果4){
                      请求5(function(请求结果5){
                          请求6(function(请求结果3){
                              ...
                          })
                      })
                  })
              })
          })
      })
      
    • promise可以支持多个并发的请求,获取并发请求中的数据

三.获取默认的链接数据库对象

const db = mongo.connection;//const定义一个值不可改变的量,connection默认链接的数据库

四.判断链接是否成功

db.on('error',function(err){
    if(!err){
        console.log('链接成功');
    }else{
        console.log('链接失败');
    }
})

五.代码

//mongoose--用来操作mongodb数据的模块
let mongo = require('mongoose');
//一.链接MongoDB server
// mongo.connect('mongodb://user:password@ip/dbname');
mongo.connect('mongodb://127.0.0.1:27017/stu',{ useNewUrlParser: true , useUnifiedTopology: true},function(){
    console.log("链接完成");
});//callback链接完成之后的函数
//二.将mongoose内置的Promise对象手动修改成使用ES6的Promise对象
mongo.Promise = global.Promise;//promise诺言
//三.获取默认的链接数据库对象
const db = mongo.connection;//const定义一个值不可改变的量,connection默认链接的数据库
//四.判断链接是否失败
db.on('error',function(err){
    if(!err){
        console.log("链接成功");
    }
    else{
        console.log("链接失败");
    }
});
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Node.js可以通过MongoDB的官方驱动程序来连接MongoDB数据库。以下是连接MongoDB数据库的步骤: 1. 安装MongoDB驱动程序 使用npm安装MongoDB驱动程序: ``` npm install mongodb --save ``` 2. 连接MongoDB数据库 使用MongoDB驱动程序的MongoClient对象来连接MongoDB数据库: ``` const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/mydb'; MongoClient.connect(url, function(err, db) { if (err) throw err; console.log("数据库已创建!"); db.close(); }); ``` 在上面的代码中,我们使用MongoClient对象的connect()方法来连接MongoDB数据库connect()方法接受两个参数:MongoDB数据库的URL和一个回调函数。回调函数接受两个参数:错误对象和MongoDB数据库的实例。 3. 插入数据 使用MongoDB驱动程序的insertOne()方法来向MongoDB数据库中插入数据: ``` const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/mydb'; MongoClient.connect(url, function(err, db) { if (err) throw err; console.log("数据库已创建!"); const myobj = { name: "菜鸟教程", url: "www.runoob" }; db.collection("site").insertOne(myobj, function(err, res) { if (err) throw err; console.log("文档插入成功"); db.close(); }); }); ``` 在上面的代码中,我们使用MongoDB驱动程序的collection()方法来获取MongoDB数据库中的集合。然后,我们使用insertOne()方法向集合中插入数据。 以上就是连接MongoDB数据库的基本步骤。 ### 回答2: 在使用Node.js连接MongoDB数据库之前,我们需要先安装MongoDB数据库和Node.js环境。 接着,我们需要使用npm安装MongoDB官方的Node.js驱动程序——mongodb,这个驱动程序提供了对MongoDB的访问和操作。安装命令为: ``` npm install mongodb ``` 然后,在Node.js应用中引入mongodb模块: ```javascript var MongoClient = require('mongodb').MongoClient; ``` 接着,我们需要定义MongoDB的地址和数据库名称,并使用MongoDB的驱动程序进行连接: ```javascript var url = 'mongodb://localhost:27017/myproject'; MongoClient.connect(url, function(err, db) { console.log("Connected successfully to server"); // 进行操作 db.close(); }); ``` 在连接成功后,我们可以进行数据库的操作,例如插入、查询、更新和删除。以下是一些操作示例: 插入数据: ```javascript // 插入一条数据 db.collection('documents').insertOne({'name': 'John'}, function(err, r) { console.log('Inserted a document'); }); // 插入多条数据 db.collection('documents').insertMany([ {'name': 'John'}, {'name': 'Bob'} ], function(err, r) { console.log('Inserted documents'); }); ``` 查询数据: ```javascript // 查询所有数据 db.collection('documents').find({}).toArray(function(err, docs) { console.log('Found the following records'); console.log(docs); }); // 查询满足条件的数据 db.collection('documents').find({'name': 'John'}).toArray(function(err, docs) { console.log('Found the following records'); console.log(docs); }); ``` 更新数据: ```javascript // 更新一条数据 db.collection('documents').updateOne({'name': 'John'}, {$set: {'age': 20}}, function(err, r) { console.log('Updated a document'); }); // 更新多条数据 db.collection('documents').updateMany({'name': 'John'}, {$set: {'age': 20}}, function(err, r) { console.log('Updated documents'); }); ``` 删除数据: ```javascript // 删除一条数据 db.collection('documents').deleteOne({'name': 'John'}, function(err, r) { console.log('Deleted a document'); }); // 删除多条数据 db.collection('documents').deleteMany({'name': 'John'}, function(err, r) { console.log('Deleted documents'); }); ``` 最后,在对数据库的操作完成后,我们需要关闭数据库的连接: ```javascript db.close(); ``` 通过以上步骤,我们可以在Node.js中连接MongoDB数据库,并进行数据库的操作。 ### 回答3: Nodejs是一个非常流行的后端开发语言,它可以通过一些模块来连接MongoDB数据库。 首先,需要安装NodejsMongoDB,可以通过官网下载并安装。MongoDB在安装好之后,需要启动MongoDB服务。 接下来,需要安装mongodb模块。可以在终端输入以下命令: ``` npm install mongodb --save ``` 这样就成功安装了MongoDB模块。 接着,需要在Nodejs中导入mongodb模块,并编写连接代码。以下是一个基本的连接代码: ```javascript const MongoClient = require('mongodb').MongoClient; const url = 'mongodb://localhost:27017/test'; MongoClient.connect(url, function(err, db) { if (err) throw err; console.log("Database connected!"); db.close(); }); ``` 这个连接代码首先加载了`mongodb`模块,并设置了一个`url`常量,表示连接的数据库地址。然后使用`MongoClient`对象的`connect`方法连接数据库,如果成功连接则会输出“Database connected!”并关闭数据库连接。 在连接MongoDB数据库的时候,可以增加一些可选项。例如,可以指定需要认证的用户名和密码,或者更改默认的端口号等。 一旦连接成功,就可以对MongoDB数据库进行操作了。可以查看官方文档,了解更多的MongoDB操作方法。 需要注意的是,在使用完MongoDB之后,需要关闭数据库连接以节省系统资源。可以使用`db.close()`方法来关闭数据库连接。 总之,使用Nodejs连接MongoDB数据库非常方便。只需安装一些必要的模块,编写一些简单的代码,就可以连接并操作MongoDB数据库了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值