Node+Express服务器搭建学习笔记

1.使用脚手架创建搭建后台

2.尝试修改端口

在bin目录下的www.js文件里面,把3000改为4000

3.在router的index文件里面注册路由

//注册路由:用户注册
router.post('/register',(request,response)=>{
  console.log("123123")
  //1.获取请求参数
  //post请求是在body里面
  //get请求是在param或query里面
  const {username ,password}=request.body
  //2.处理
  if (username === 'admin'){//注册失败
    //返回响应数据(失败)
    response.send({code:1,msg:'此用户已存在'})

  }else {//注册成功
    //返回响应数据(成功)
    response.send({code:0,data:{id:'abc123',username,password}})

  }

})

需要注意的是,每次路由文件的更改需要我们重新启动路由器(这不是我们想要的,在后面我们会推荐一个方法解决这个问题)

4.postman的使用

前端人员会存在拿不到服务器数据的问题,这个时候需要判断是不是服务器端的问题,我们就可以使用postman来检测接口。

需要注意的就是以上红框圈住的地方。

5.后台应用自动重运行(上文提到的问题)

问题: 每次修改后台应用代码, 需要重新运行命令修改才生效

下载: npm install --save-dev nodemon 

配置: 把node改为nodemon

测试: 修改完代码,按下 ctrl + S就可以了

6.mongoose的使用

mongodb

数据库database里面存放集合collection,集合collection里面存放文档document,文档是最小的操作单位

mongoose的内容:

Schema:约束文档解耦股

Model:相当于collection,作为集合中所有文档的表示

Document:相当于具体文档

通过mongoose连接mongodb:

第一步:必须先安装mongoose包:

npm install mongoose

第二步:引入

第三步:连接数据库

第四步:断开连接

mongoose.disconnect()

//引入blueimp-md5,用于对密码进行md5加密
const md5 = require('blueimp-md5')
//第一步引入mongoose
const mongoose=require('mongoose')
//第二步,连接数据库(地址里面mongodb是协议名称,localhost:27017是域名端口号,guigutest是数据库的名字)
mongoose.connect('mongodb://localhost:27017/guigutest')
//第三步,获取连接对象
const conn=mongoose.connection
//第四步,绑定完成监听(提示连接成功)
conn.on('connected',function () {
    console.log("数据库连接成功")
})


// Schema(描述文档结构),相当于定义了一个表
const userSchema = mongoose.Schema({
    username: {type: String, required: true,default: 'admin'}, // 用户名
    password: {type: String, required: true}, // 密码
    type: {type: String, required: true}, // 用户类型
})
// 通过约束来映射集合,定义 Model相当于一个类,这个类可以可以操作集合
const UserModel = mongoose.model('user', userSchema) // 集合名: users

// 通过 Model 实例的 save()添加数据
function testSave() {
    const user = {
        username: '维克特利123',
        password: md5('1234'),
        type: 'laoban',
    }
     //第一种方法,不推荐
   /* const userModel = new UserModel(user)
    userModel.save(function (err, user) {// 保存到数据库
        console.log('save', err, user)
    })*/
   //第二种方法推荐
    UserModel.create([user],(err, user)=>{
        console.log('save', err, user)
    })

}
//testSave()

// 通过 Model 的 find()/findOne()查询多个或一个数据
function testFind() {
// 查找多个,如果不指定查找对象的条件,则默认查找全部
    UserModel.find(function (err, users) {
        // 如果有匹配返回的是一个[user, user..], 如果没有一个匹配的返回[]
        console.log('find() ', err, users)
    })
// 查找一个
/*
    UserModel.find({},()=>{})//根据条件查找,如果没有条件,则查找全部
    UserModel.findById({},()=>{})//根据id来查找
    {}里面可以方多个参数
    总共有四个参数[conditions][projection][option][callback]
    projection表示需要获取的字段
    "name age -_id"加负号表示不想要这个数据
    option查询选项
    {skip:3,limit:1}表示跳过前面三个,显示一个
    */
    UserModel.findOne({_id: '609dff1b242c2e33c4067c38'}, function (err, user) {
        // 如果 有匹配返回的是一个 user, 如果没有一个匹配的返回 null
        console.log('findOne() ', err, user)
    })
}
// testFind()

//通过 Model 的 findByIdAndUpdate()更新某个数据
function testUpdate() {
    //第一个参数是条件查询参数,第二个是修改参数的,第三个是回调函数
    UserModel.findByIdAndUpdate({_id: '609dff1b242c2e33c4067c38'}, {username: 'yyy'},
        function (err, user) {
            console.log('findByIdAndUpdate()', err, user)
        })
/* UserModel.updateMany()
    UserModel.updateOne()*/
}
// testUpdate()

// 通过 Model 的 remove()删除匹配的数据
function testDelete() {
    UserModel.remove({_id: '609dff1b242c2e33c4067c38'}, function (err, result) {
        console.log('remove()', err, result)
    })
/*UserModel.deleteMany()
    UserModel.deleteOne()*/
}
// testDelete()

注意:每个IDE会有方便使用mongodb的插件!!!

最后我们需要暴露model

export.UserModel=UserModel

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值