mongodb (大地老师)
win系统下的安装
-
Mongodb官网下载压缩版
-
解压到一个目录下面
-
然后新建一个data空文件夹
-
新建一个log文件
-
-
进入bin目录下 然后复制路径
-
系统环境变量里配置
一,数据库使用
开启mongodb服务:要管理数据库,必须先开启服务,开启服务使用mongod --dbpath F:\mongodb
后面文件脱到这里面mongo
注意:浏览器上输入localhost:27017测试是不是Mongodb服务器开启成功
这个就说明开启成功了
管理mongodb数据库:mongo (一定要在新的CMD中输入)
这样就连接到本地的数据库
查看你所有的数据库
show dbs
二,创建数据库
mongodb
MongoDB数据集合的操作 相当于MySQL的数据库
//Collections 集合
show dbs //可以预览所有的数据表
use jiahua //进入jiahua数据库 如果没有自动创建一个 创建数据库不是表
show collections //查看有没有数据表
db.createCollection("users") //创建一个表
show collections //查看刚才那个表是否新建成功
show users.renamecollection("staff") //重命名表名
show collections
db.staff.drop() //删除表
db.dropDatabase()//删除数据库
show dbs
//Document文档
mongo
use jiahua
show collections
db.createCollection("post");
db.post.insert(
{
title:'我的第一个博客',
content:'我的博客开始写了'
}
);
show collections
db.post.find() //查询刚才保存的数据
db.post.count()//查看有多少记录
db.post.remove({}) //删除刚刚我们建立的所有的数据
使用数据库,创建数据库
use student
创建完成后你在use student的话进入student数据集合里面
插入文档
插入单个数据
//student集合里插入单个数据
db.student.insert({name:'hello11',age:188888})
//查询数据库
db.student.find()
插入多个数据
插入多个数据库的话 需要加个[]就是数组
db.student.insert([
{name:'dongzhou',age:7777,gander:'women'}
{name:'dongzhou111',age:7777,gander:'women'}
{name:'dongzhou2222',age:7777,gander:'women'}
{name:'dongzhou333',age:7777,gander:'women'}
])
查询文档
db.collection.find()
- find()用来查询集合中所有的符合条件的文档
-find()可以接受一个对象作为条件参数
修改文档
db.collection.update(查询条件,新对象)
db.student.update({name:'jiahua'},{age:28});
删除文档
mongoose
1.下载安装
新建一个目录下面
npm inti --yes
cnpm install mongoose --save
2.连接数据库
3、在项目中引入mongoose
const mongoose = require('mongoose');
4, 连接MongoDB数据库
mongoose.connect('mongodb://数据库的IP地址:端口号/数据库名')
-如果端口号是默认端口号(27017)刺可以省路不写
-监听MongoDB数据库的连接状态
-在mongoose对象中,有一个属性叫做connection,该对象表示的就是数据库连接
通过监视读对象的状态,可以来监听数摇库的连接与断开
下面是查看是否链接成功 达不是必须写的
数据库连接成功额事件
mongoose.connction.once('open',function(){})
数据库断开的事件
mongoose.connction.once('close',function(){})
var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/student',{useMongoClient:true});
mongoose.connection.once('open',function(){
console.log('OK');
});
3.操作数据库
//将mongoose.Schema赋值给一个对象
var Schema = mongoose.Schema;
//创建Schema(模式)对象
//Schema仅仅是数据库的约束
var zhuomaSchema = new Schema({
name:String,
age:Number,
gender:{
type:String,
default:'female'
},
address:String
})
//通过schema来创建Mode1
//Model代表的是数据库中的集合,通过Model才能对数据库进行操作
//mongoose.model(modelName,schema):
var ZhuomaModel = mongoose.model('zhuoma',zhuomaSchema);
//这时候你还没有创建数据库
//向数据库中插入一个文档
//ZhuomaModel.create(doc,function(err){});
ZhuomaModel.create({
name:'孙悟空',
age:18,
gender:'male',
address:'花果山'
},function(err){
if (!err) {
console.log('数据插入成功');
}
})
4.model使用方法
有了Model,我们就可以来对数据库进行曾删改查的操作了
1.插入数据
ZhuomaModel.create([
{
name:'嘉华哦对那个自己哦',
age:787,
address:'藏族',
},
{
name:'攒足让你卡',
age:8787878,
gender:'male',
address:'西藏'
}],function(err){
if (!err) {
console.log('插入车功能额');
}
})
2.查询数据
ZhuomaModel.find({name:'孙悟空'},function(err,docs){
if (!err) {
console.log(docs)
}
})
3.修改数据
ZhuomaModel.updateOne({name:'孙悟空'},{ $set:{age:88888}},function(err){
if (!err) {
console.log('cehgngogn')
}
})
4.删除文档
ZhuomaModel.remove({name:'孙悟空'},function(err){
if (!err) {
console.log('removeOK');
}
});
5.Document使用方法
Mac i MongoDB
下载地址:https://www.mongodb.com/try/download/community
然后文件解压后放在一个目录下面 我放》文档》IT下面
- 启动mongodb这个程序
- 进入到mongodb4.2.1这个目录下面注意这个下面还有两个目录 一个是新建的db 文件夹 一个是mongodb正真的数据库
- 继续cd 到 bin目录下面
- 输入 ./mongod --dbpath 后面放那个db的路径就启动成了
- 验证是否成功 浏览器输入127.0.0.1:27017
egg.js
1、安装egg.js
$ mkdir egg-example && cd egg-example
$ npm init egg --type=simple
// 这里就可以一直按y 就可以了
$ npm i
//我在F盘根目录下面新建一个eggDome的文件
//然后cd 到eggDome
启动项目:
$ npm run dev
$ open http://localhost:7001
2、路由和控制器
2、我们要最关心的两个文件
- 一般配置都要放在config下面
- 比如说插件那些配置
- 然后一些默认的配置在这里面配置
什么是MVC
控制器(controller)
app/controller
目录下面实现Controller
'use strict';
const Controller = require('egg').Controller;
class HomeController extends Controller {
async index() {
const { ctx } = this;
ctx.body = 'jiahuadongzosdfgdhdfu';
}
}
module.exports = HomeController;
服务(service)
使用插件egg-mongoose连接数据库
下载
cnpm i egg-mongoose -S
配置
config/plugin.js
module.exports = {
static: {
enable: true,
package:'egg-mongoose'
}
};
配置数据库
config.default.js
config.middleware = [];
//这个下面配置数据库哦
config.mongoose = {
url:'mongodb://127.0.0.1:27017/sdutent',
options:{
useUnifiedTopology:true,
useCreateIndex:true
}
}
然后app下面新建一个model文件夹> 里面在新建一个user.js
这是配置之后第一个要做的事情
module.exports = app => {
const mongoose = app.mongoose;
const UserSchema = new mongoose.Schema({
//这里面就开始写数据字段
//跟Mongodb数据库的时候一样
})
return mongoose.module('User',UserSchema)
}
module.exports = app => {
const mongoose = app.mongoose;
const UserSchema = new mongoose.Schema({
UserName:{
type:String,
unique:true,
required:true
},
password:{
type:String,
required:true,
},
//头像
avatar:{
type:String,
default: 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1858570547,3506631316&fm=26&gp=0.jpg'
},
//创建当前的时间
creataAt:{
type:'Date',
default:Date.now
}
})
return mongoose.module('User',UserSchema)
}
//这是一个完整的数据库定义
然后这个model层要用service来管理
router里面填写对应的接口
router文件夹
创建router
router.post('/api/user',controller.user.create)
创建controller 下面user.js方法
请求数据的时候 后端经常出现这样一个错误csrf
解决方法
config.default.js
const config = exports = {};
//这个下面写几行代码就可以了
config.security = {
csrf:{
enble:false
}
}
MySQL安装
2、解压到一个文件夹
2、配置
F:\MySQL\mysql-8.0.21-winx64
目录下面新建一个文本文件
复制下面的保存的时候后缀名一定要ini 我的叫my.ANSI
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=F:\MySQL\mysql-8.0.21-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:\MySQL\mysql-8.0.21-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
2.1 配置系统变量
2.2 命令行必须要管理员身份进行运行
然后进入到bin目录下面
安装数据库
输入如下命令
mysqld --initialize --console
root@localhost: YAayUTqlc4/D
后面的是我的密码待会要用到
安装
mysqld -install mysql //后面的是数据库名字
出现这个说明已经成功了
启动服务器
net start myswl
然后登陆数据库 命令行中
mysql -u root -p
然后下面显示pqssord 输入上面的密码就可以了
这样表示密码输入正确
下面如何更改默认密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
这样表示密码修改成功
4.如何关闭服务器
同样 新建一个命令行 管理员
进入斌bin目录下面
net stop myswl
MyQSL 数据库连接客户端
打开Navicat Premium 客户端
- 点击连接 mysql 然后起一个名字 下面输入密码
- 即可连接
1.建表
这样就user表就完成了
1、第一步:定义路由
router.resources('user','/api/user',controller.user);
2、第二步:controller >定义user
我们要做的是查询user表里的用户
const { Controller } = require('egg');
class UserController extends Controller {
async index(){
const { ctx,service } = this;
let users = await service.user.list();
ctx.body = users;
}
}
module.exports= UserController;
3、第三步:创建service
const { Service } = require('egg');
class UserService extends Service {
async list() {
const result = await this.app.mysql.select('user');
return result;
}
}
module.exports = UserService;
安装egg-mysql
cnpm i egg-mysql -S
1.安装好egg-mysql后
配置plugin.js
exports.mysql = {
package:'egg-mysql',
enable:true
}
配置config.default.js
userConfig.security = {
csrf: false,
};
userConfig.mysql = {
client: {
host:'localhost',
port:3306,
user:'root',
password:123456,
database:'cms'
},
};
egg.js安装方法
cnpm i egg-init -g