前言

若文章有误,欢迎读者留言反馈

只需一篇就能学会node.js搭建后台基本流程

数据库准备工作和插件安装【提前创建好项目文件夹】

  1. 在终端启动mongoDB服务器,进入mongoDB交互式shell
    mongo

  2. 创建数据库[切换数据库]
    use 数据库名

    use切换数据库时,若库存在则切换,如果数据库不存在则创建并切换
    use创建的数据库只是一个空的数据库,没有集合,所以show dbs不显示空数据库。

可以使用db命令来查看当前所在的数据库名称:
db

  1. 创建表并插入几条数据

==表是不需要先行进行定义的==,当我们往一个表中插入记录后,表就自动出来了。
JSON格式数据:不是严格意义上的json数据,key名可以不使用引号包裹

1
2
db.表名/集合名.insert(JSON格式数据)
# 表名/集合名是不存在的(第一次插入数据的时候),当数据插入完毕则表名就存在了

查看数据
db.表名加上s.find()

  1. 安装express+Mongoose+art-template模板引擎(默认你已经安装好了nodejs和express)
1
2
3
4
5
// 全局安装express
npm install express -g
// art-template模板引擎
npm i -S art-template express-art-template

  1. 包管理文件【package.json,这里选择快捷方式】
    1
    npm init -y
  2. 安装依赖
    1
    npm i
  3. 安装Mongoose 模块[连接数据库的模块]
1
2
3
// 进入当前项目根目录,输入:
//安装Mongoose, --save或者-S把Mongoose模块加入到项目依赖
npm install mongoose --S

express操作mongodb

  1. 创建服务
  2. 查询数据,拿到数据
  3. 定义模板页面用来渲染查询的数据

先跑通前后端

1
2
3
4
5
6
7
8
9
10
// 引入express模块
const express = require('express')
// 创建服务实例
const app = express()
// 监听请求
app.get('/user', (req, res) => {
res.send('hello world')
})
// 启动服务
app.listen(8080, () => console.log('your server running at http://locahost:8080'))

连接数据库

1
2
3
4
5
6
7
8
9
10
const mongoose = require('mongoose')
// 参数 mongodb关键词 localhost是数据ip地址 27017是默认端口号 members链接的库
mongoose.connect('mongodb://localhost:27017/members')
// 定义表结构
const demoSchema = new mongoose.Schema({
id:Number, //key是表的字段 value是字段的类型
age:Number,
sex:String,
name:String
})

定义Model

1
2
3
4
// 参数1 是Model的名称
// 参数2 上面的表结构 schema
// 参数3 是对应的表名称,可以省略,不写的话默认就是model名称的复数形式。
const model = mongoose.model('demoModel',demoSchema,'demo')

监听请求里操作数据库,并把数据返回给前端

1
2
3
4
5
6
7
8
9
// find默认是查询所有数据,后面可以跟条件,.then可以拿到回调的数据,data就是数据
model.find().then(data=>{
console.log('data',data); //data 返回的数据
res.send({
code:200,
msg:'请求成功',
data
})
})

整合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
1.创建服务
2.查询数据,拿到数据
3.定义模板页面用来渲染查询的数据
*/
const express = require('express')
const path = require('path')
const app = express()
// 1.安装npm i -S art-template express-art-template
// 2.配置模板引擎
app.engine('html',require('express-art-template'))
app.set('views',path.join(__dirname,'views')) //指定views模板去哪里找。

// 1.链接数据库
const mongoose = require('mongoose')
// 参数 mongodb关键词 localhost是数据ip地址 27017是默认端口号 members链接的库
mongoose.connect('mongodb://localhost:27017/members')
// 2.定义表结构
const demoSchema = new mongoose.Schema({
id:Number, //key是表的字段 value是字段的类型
age:Number,
sex:String,
name:String
})
// 3.定义Model
// 参数1 是Model的名称
// 参数2 上面的表结构 schema
// 参数3 是对应的表名称,可以省略,不写的话默认就是model名称的复数形式。
const model = mongoose.model('demoModel',demoSchema,'demo')

app.get('/user',(req,res)=>{
// 4.操作数据库
// find默认是查询所有数据,后面可以跟条件,.then可以拿到回调的数据,ret就是数据
model.find().then(ret=>{
console.log('ret',ret); //ret 是数组的一个格式
// res.send({
// code:200,
// msg:'请求成功',
// data:ret
// })
res.render('user.html',{
ret:ret
})
})
})

app.listen(8080,()=>{
console.log('您的服务已启动, http://localhost:8080');
})

mongoDB操作命令

mongo操作

  • mongo进入数据库
  • show dbs 显示所有的库
  • db 显示当前所在的库
  • use 库名 切换数据库,创建数据库
  • db.表名.insert(json数据) 在某个表当中插入一条数据。
  • show tables 查看所有表
  • db.表名.drop() 删除某一个表
  • db.dropDatabase() 删除当前库,清空数据库,但是库名还在。
    增删改查

  • db.表名.insert(json数据) 添加一条 insertOne
    db.表名.insert([json1,json2]) 添加多条 insertMany
  • 删除
    db.表名.deleteOne({key:value}) 删除一条,满足条件的第一条被删除。
    db.表名.deleteMany({key:value}) 删除多条,只要满足条件就被删除。
  • 修改
    db.表名.updateOne({条件},{$set:{json数据}}) 修改的时候,如果字段包含就修改,不包含就添加字段。
    db.表名.updateMany({条件},{$set:{json数据}}) 修改多条数据,只要满足条件就会被修改
  • 查询
    db.表名.find(条件) 按条件查询
  • 获取总条数
    db.表名.find().count() 获取总条数
  • 分页
    db.表名.find().skip(开始下标).limit(截取数据的个数)