express

安装express

cnpm i express

创建Web服务

var express = require('express')
var app = express()

// 浏览器收到HTML响应内容之后要开始从上到下依次解析
// 当在解析的过程中 如果发现 link script img iframe video audio
// 等带有src或者href属性标签(具有外链的资源)的时候
// 浏览器会自动对这些资源发起新的请求
// 则需要开放静态文件夹
// 开放static静态文件夹
app.use('/static/', express.static('./static/'))

app.get('/', function (req, res) {
  res.send('hello express')
})

app.listen(3000, function () {
  console.log('app is running at port 3000...')
})

express-art-template

cnpm install --save art-template
cnpm install --save express-art-template

var express = require('express');
var app = express();
app.engine('html', require('express-art-template'));

路由

var router = require('./router')

app.use(router)

// router.js
var express = require('express')
var router = express.Router()
router.get('/', function (req, res) {
  res.render('index.html')
})

post请求

cnpm install body-parser

// app.js
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

重定向

// 允许网址的重定向 跳转到指定的url并且可以指定status 默认为302方式
res.redirect([status], url)

请求参数

request.query // get
request.body // post

express/json 附件
session/cookies

 cnpm install express-session --save

const session = require('express-session')

app.use(session({
    secret: 'secret string', // 加密字符串
    resave: false,
    saveUninitialized: false // 请求默认分配session
}))

md5

cnpm install blueimp-md5 --save

const md5 = require("blueimp-md5")

md5(md5(xxx))

中间件

// middleware
// 处理请求体的函数
// 中间件存在顺序
// app.use(router)在末尾

// 请求进入 
// 从第一个中间件开始进行匹配
// 匹配则执行中间件 
// 不匹配则继续判断匹配下一个中间件
// 匹配执行的中间件没有调用next() 则停在当前中间件 
// 若调用则继续判断匹配下一个中间件

// 三个参数 
// Resquest 请求对象 
// Responce 响应对象 
// next next()交出控制权 执行下一个匹配的中间件

// 中间件类型
// 无关请求路径、请求方法
// 任何请求都会进去的中间件
app.use(function (req, res){ ... })

// 以 /xxx 开头中间件路径
app.use('/xxx/xx', function (req, res){ ... })

// 严格匹配路径和请求方法
app.get('/xxx', function (req, res){ ... })

// body-parser
// 请求路径为 /xxx post

app.use(function (req, res, next){
    req.body = { key: value }
    next()
})

app.post(function (req, res){
    console.log(req.body) // { key: value }
})

// 404
// 前面所有路径/请求都未匹配
app.use(function (req, res) {
    res.render('404.html')
})

// 配置错误处理中间件
app.get('/xxx', function (req, res, next){
    fs.readFile(function (err, data){
        if(err){
            // 传参直接调用末尾四参数中间件
            return next(err)
        }
    })
})

app.use(function (err, req, res, next){
    res.status(500).send(err.message)
})

session/cookies/md5 附件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值