用代码来操作数据库
我们需要使用一个第三方用来管理MongoDB的模块: Mongoose
1. Node中最盛行的两个框架
- express
- koa是express升级版
2. 包管理器问题
- npm 是全球最大的包管理器,它对应的网站是 www.npmjs.com
- 第三方的,速度较慢
- cnpm 是国内淘宝镜像源 它对应的网站是: https://registry.npm.taobao.org
- 国内的, 速度较快 ,不安全,不稳定
- 安装
-$ npm install -g cnpm --registry=https://registry.npm.taobao.org
- 测试
-$ cnpm -v
有输出没有报错,那么恭喜你,安装成功了
3. 代码思维
- 正向
- 逆向
4. some
- some是数组遍历的一种方式
- 作用: 判断某一个数据是否在数组当中,并且只找一个
- 如果数据存在,返回true,否则是 false
Mongoose简介
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用。
Mongoose的操作流程
- 安装mongoose
npm install mongoose -D - 连接数据库
使用mongoose连接数据库的前提条件是:
mongo数据库已经运行。
已经安装了mongoose包
var mongoose = require(“mongoose”);
// 连接字符串格式为mongodb://主机/数据库名
mongoose.connect(‘mongodb://localhost/student’);
上面这句的意思是连接到本地的mongodb的student 表。 - 新增数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wy4TPpEP-1571184848358)(en-resource://database/688:1)] - 删除数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bmv7slmj-1571184848360)(en-resource://database/690:1)] - 修改数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VK8mt9EZ-1571184848360)(en-resource://database/692:1)] - 查询数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FtyNNj3A-1571184848361)(en-resource://database/694:1)]
需求分析
为了保存网站的数据,通常需要一个数据库。MongoDB和Node.js特别般配,因为MongoDB是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改查等管理数据库的命令和JavaScript语法很像。如果你在Node.js里访问MongoDB的数据,会有我们是一家人的感觉,特别亲切。
项目环境搭建
1、在命令行窗口执行:
npm install express-generator -g
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKksah3P-1571184848362)(en-resource://database/696:1)]
express -V
检查是否安装成功,查看版本 大写的V
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-evzzBLbL-1571184848363)(en-resource://database/698:1)]
用node.js和express创建一个新项目:
cd到一个创建项目的路径,比如D盘根目录 d:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WSzKPRuG-1571184848363)(en-resource://database/700:1)]
然后执行命令:
express -e newsmanage
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L3JHdj7B-1571184848365)(en-resource://database/702:1)]
执行完成后如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-29wRijjT-1571184848369)(en-resource://database/704:1)]
打开D:\newsmanage 项目已经建立好。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pmOot2rx-1571184848372)(en-resource://database/706:1)]
因为项目中需要使用mongoose操作数据库,所以需要安装mongoose包。
在package.json中增加mongoose
Package.json 内容:
{
"name": "newsmanage",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.15.1",
"cookie-parser": "~1.4.3",
"debug": "~2.2.0",
"ejs": "~2.4.1",
"express": "~4.13.4",
"morgan": "~1.7.0",
"mongoose": "*",
"serve-favicon": "~2.3.0"
}
}
通过npm install 可以一次性安装所有依赖的包, 如果不写具体的版本号 可以用*表示安装最新版本。
执行npm install 安装依赖
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eZTUheOo-1571184848373)(en-resource://database/708:1)]
安装完成后:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g6QyHwxP-1571184848374)(en-resource://database/710:1)]
多出一个文件夹node_modules,里面是依赖的包:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CljUyQQH-1571184848375)(en-resource://database/712:1)]
打开项目如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NFBJ5h1a-1571184848376)(en-resource://database/716:1)]
至此,环境搭建完成。
制作过程
- 静态页面制作
- 接口打造
- 数据库连接
- 后台管理系统的制作
- 信息的增删修改