一、本地搭建mogoDB数据库、安装mongoDB Compass
关于搭建mogo笔记在这里:https://www.yuque.com/docs/share/19d8df6e-8a16-460a-837c-366ec7809b73?# 《window10安装MongoDB》
二、连接数据库
1、安装包
npm install mongoose —save // 用于连接数据库,处理数据模板等
2、连接数据库
因为线上数据库没有注册成功,用的本地数据库
const koa = require('koa')
const Router = require('koa-router')
const mongoose = require('mongoose')
// 初始化实例
const app = new koa()
const router = new Router()
// 路由
router.get('/', async ctx => {
ctx.body = {msg: 'hello koa,good!'}
})
// 连接数据库
mongoose.connect('mongodb://localhost:27017/admin',
{useNewUrlParser: true, useUnifiedTopology: true})
.then(() => {
console.log('数据库连接成功')
})
.catch(err => {
console.log(err)
})
// 配置路由
app.use(router.routes())
.use(router.allowedMethods())
const port = process.env.PORT || 5000
app.listen(port, () => {
console.log(`server started on ${port}`)
})
运行项目:npm run serve
3、连接数据库前确保你的数据库启动
此时我们关闭本地MongoDB数据库的话,会发现无法连接,并报错了。
4、监听数据库的连接状态
- 在mongoose对象中,有一个属性叫connection,该对象表示的就是数据库的连接,通过监听该对象的状态,可以来监听当前数据库到底处于连接状态还是断开状态。 ```javascript mongoose.connection.once(“open”, () => { console.log(‘数据库已成功连接’) })
mongoose.connection.once(“close”, () => { console.log(‘数据库已断开连接’) })
//断开数据库连接 mongoose.disconnect() ```
5、项目完整代码
github地址:https://github.com/taoorange/koa-demo
三、废话放在后面-在线数据库Mlab
作者使用的是在线数据库: mlab(国外网站,最好有VPN服务)
https://mlab.com/
1、mlab被收购了,注册服务无法使用
注册时遇到如下问题:
按照提示意思是说我的密码中包含了邮箱的信息,实际上我没有包含,无语。
查看接口返回:
也没有具体写什么错误。
仔细阅读注册框左侧部分,意思是malb最近两年应该是被mongobd这家网站的公司收购了,现在注册服务托管于mongo网站(和之前的mlab的sign up页面服务不一样了)。
问题是你注册不上啊!
算了,我们直接去mongodb网站看一下怎么回事。
2、去mongodb.com看一下
mongo注册网址:https://account.mongodb.com/account/register
尝试注册仍然不行,看来这是后端服务器校验出了问题。无论输入怎样的密码都无法通过。
虽然接口不一样,但是调用的应该都是同一个后端接口服务。明显出了问题。
3、放弃线上数据库了
使用过mlab的小伙伴可能知道,其实它的界面看起来还不如mongoCompass。说白了,使用mlab就是图个新鲜,也没有太大必要。本地安装好mongoDB完全够用。
本地安装MongoDB数据库查看我的另一篇文档:
window10安装MongoDB