不以风骚惊天下,偏以技术渡佳人。
大家好,我是奶挺老师,江湖人称莒巭萎(lvbuwei),嘿嘿嘿,我又来叨扰大家了。
本课程基于我前面的一篇课程,如果自己机器还没有安装MongoDB,那么请看下我的MongoDB安装教程
今天是个好日子,明天也是个好日子。。。他来了他来了,他带着诚意走来了,哈哈,我们终于把koa基础部分学习的差不多了,回顾一下,我们学习了koa启动、koa路由配置、模板引擎ejs、静态文件的引用等等。
但是有一个问题啊,就是不管我们把页面做的多么花哨,多么炫酷,我们页面中的数据是需要存到数据库中的,数据才是最值钱的,正所谓好看的皮囊千篇一律,有趣的灵魂万里挑一,这里数据库就是一个产品一个软件的灵魂,哎~~~我们不仅要能控制住自己的身体,也要控制自己的灵魂。
mongodb中间件
安装
npm install mongodb --save
mongodb文件目录新建
cd Desktop/code/koa2_demo
mkdir mongodb
cd mongodb
touch index.js
连接MongoDB数据库
index.js 添加如下代码
const MongoClient = require('mongodb').MongoClient //引入MongoClient实例
const url = 'mongodb://localhost:27017' //数据库连接地址
const dbName = 'koa' //数据库名称
//调用连接数据库connect方法
MongoClient.connect(url, (err,client) => {
console.log("Connected successfully to server");
const db = client.db(dbName);
console.log(db)
// db.close()
})
在运行index.js文件之前,我们需要先启动MongoDB数据库
启动本地MongoDB数据库和可视化工具
mongod --dbpath=/Users/yo/mongodb/data/db
图中红线圈出的部分为数据连接地址和端口
我们打开另一个终端窗口看看数据库是否启动成功
mongo
可以看到我们的数据库已经是启动成功了
接下来我们为了方便操作,为了大家易懂,我们启动可视化工具(如果基础好的同学也可以直接在命令行中输入命令来操作数据库啊)
这一步骤不会的请去看我的可视化安装教程
cd /Users/yo/mongodbClient/adminMongo
npm start
我们直接打开浏览器,在地址栏输入 http://localhost:1234
新建dbName=koa和collection=user
万事俱备了,我们射。。。,运行一下我们之前写的index.js,看看是否能够成功连接到我们自己的数据库
node index.js
耶耶耶。。。成功啦成功啦,我们成功啦,此时有没有lol五杀的感觉啊,反正我第一次是有的哦。
到这里我们利用mongodb中间件已经成功连接到了我们本地安装的MongoDB数据库了
操作MongoDB数据库
我们先在index.js中来操作数据库
事例
const MongoClient = require('mongodb').MongoClient //引入MongoClient实例
const url = 'mongodb://localhost:27017' //数据库连接地址
const dbName = 'koa' //数据库名称
//调用连接数据库connect方法
MongoClient.connect(url, (err, client) => {
console.log("Connected successfully to server");
const db = client.db(dbName);
//新增数据
db.collection('user').insertOne({
'name': '张三',
'age': 18,
'sex': '男'
}, (err, result) => {
if (err) {
console.log(err)
}
console.log('插入成功了' + result)
})
console.log(db)
// db.close() //先注释掉,变为持续链接
})
保存代码,运行程序 控制台打印出了成功插入的信息
刷新浏览器,我们也可以看到数据已经成功添加了
各位同学们,是不是觉得特别神奇,嘿嘿其实一点都不神奇,代码比女朋友听话多了,你让她怎么样,她就怎么样,但是我们也发现了一个小问题啊,如果我们每做一次操作都要这样连接、然后操作数据库,那一个项目那么多请求,那么多I/O,代码耦合度太高了,而且都是重复的工作,这部分代码堆叠起来其实也挺可怕的。
那我们有没有更优雅的方式来编程呢?预知后事如何,且听下回分解。
个人格言: 花堪折时直须折 莫待无花空折枝。生死看淡,不服就干...