nodejs day4

写在前面:在实际开发中前后端通过api来实现数据交互,前端写页面,请求数据,根据请求到的数据进行处理. 后端实现各种功能并提供api接口

  • 接收数据
  • 验证数据
  • 返回数据

express框架的使用

express官网安装

  • 安装express
 npm install express -save

*在引用第三方模块时 node会自动从当前目录的node_modules 依次向上寻找

const express = require("express");
var app = express()

// 创建一个api
app.get('/user/login', (req, res) => {
    // 接受get参数 query
    console.log(req.query);
    console.log('login method run');
    // 处理参数 
    res.send({
        err: 0,
        msg: 'login ok',
    })
})
app.post('/user/regist', (req, res) => {
    // 接受post数据
    // express 无法解析消息体 可以借助 body-parser插件 npm install body-parser
    let { username, pwd } = req.body;//无法使用
    console.log(req.body)
    if (username == 111 && pwd == 111) {
        res.send({ msg: 'reg ok' })
    }
})
app.listen(3000, () => {
    console.log('start');
})

// http://localhost:3000/user/login   
/*
api 接口的组成:
IP
port
path
method: get / post
用户的数据  

另:数据格式由后端来确定

*/
  • express无法解析消息体需要通过第三方插件来完成 如 : body-parser
npm install body-parser
  • 使用时 require(‘body-parser’)即可
  • 另外可以用postman 来使用发post请求方法 postman下载(我这下载死慢死慢,今儿就不演示了…)
  • 打开后 x-www-form-urlencode 即可发送表单格式的数据
  • 实际开发 一般 json 表单 fromdata 基本就是这仨了
const express = require("express");
const bodyparser = require("body-parser")

var app = express()
// 解析 表单数据 x-www-form-urlencode
app.use(bodyparser.urlencoded({
    extended: false
}))
// 也可解析 jason
app.use(bodyparser.json());
// 创建一个api
app.get('/user/login', (req, res) => {
    // 接受get参数 query
    console.log(req.query);
    console.log('login method run');
    // 处理参数 
    res.send({
        err: 0,
        msg: 'login ok',
    })
})
app.post('/user/regist', (req, res) => {
    // 接受post数据
    // express 无法解析消息体 可以借助 body-parser插件 npm install body-parser
    let { username, pwd } = req.body;//无法使用
    console.log(req.body)
    if (username == 123 && pwd == 456) {
        res.send({ msg: 'reg ok' })
    }
})
app.listen(3000, () => {
    console.log('start');
})

// http://localhost:3000/user/login   
/*
api 接口的组成:
IP
port
path
method: get post
用户的数据  btw 数据格式 由后端确定

*/

中间件 (拦截器

  • 内置中间件 static
  • 自定义中间件 (全局/局部)
  • 第三方中间件(body-parser)

全局中间件demo:

const express = require("express");
var app = express();
app.use('/', (req, res, next) => {
    console.log('拦截器生效');
    let token = req.query;
    if (token) {
        next();
    } else {
        res.send('miss token');
    }
})
// 创建一个api
app.get('/test1', (req, res) => {
    // 接受get参数 query
    console.log(req.query);
    console.log('login method run');
    // 处理参数 
    res.send({
        err: 0,
        msg: 'login ok',
    })
})
app.get('/test2', (req, res) => {
    // 接受post数据
    let { username, pwd } = req.body;// 不可直接使用
    res.send({
        msg: 'reg ok'
    })
})
app.listen(3000, () => {
    console.log('start');
})

// http://localhost:3000/user/login   
/*
api 接口的组成:
IP
port
path
method: get post
用户的数据  btw 数据格式 由后端确定

*/
  • 请求时 先匹配上就先执行谁 所以 ‘/’ 在每次请求时都会被匹配 在实际中 在此可以检查token然后决定要不要继续往下匹配 执不执行next();

局部中间件demo:

const express = require("express");

var app = express();
app.get('/test1', (req, res, next) => {
    console.log('fun1');
    next();//继续往下执行 fun2
}, (req, res) => {
    console.log('fun2');
    res.send('fun2 exposed')
})

app.listen(3000, () => {
    console.log('start');
})
  • template : app.get(path, fun1(),fun2(),…)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值