用Express重写前面的记事本

要点:

1.express在这个案例之中,将路径的监听方法封装好了,通过平行的代码,简洁,逻辑直观。注意四种主要的方法

  .use()监听公开的动态资源,前一个参数监听url,后一个参数指定对应路由的文件夹。

  .engine()是在express中使用模板引擎,前一个参数通过某一后缀名,指定可以使用模板引擎的文件类型

  .get() .post()分别监听get和post两种方式的url

2.get方式请求,将信息都反应在url中,既不安全也不美观,但是通过查询语句(query)可以容易地获取请求体中地信息。而post请求方式,不会在url中体现出请求体信心,但相应的,较难获取。

  在express中,没有封装获取post请求体的API,需要安装中间件—body-parser,在配置好中间件之后,post方式请求res会多出body属性,这个body的内容跟get方式请求的query是一样的。步骤如下:

  •      先安装        npm install body-parser --save
  •      引包            var postBody = require('body-parser')
  •      配置中间体    服务器对象.use(postBody.urlencoded({extended:false}))
                               服务器对象r.use(postBody.json()

原来的node.js文件改为如下代码

var express = require('express')
var postBody = require('body-parser')
// 引入body-parser插件包

var server = express()
// 创建服务器

server.use(postBody.urlencoded({extended:false}))
server.use(postBody.json())
// 配置body-parser

var events = [
  {
  	name:'RNG',
  	date:'2018-3',
  	event:'2018LPL春季赛冠军'
  },
  {
    name:'RNG',
  	date:'2018-8',
  	event:'2018LPL夏季赛冠军'
  },
  {
    name:'RNG',
  	date:'2018-9',
  	event:'2018LSM季中赛冠军'
  },
  {
    name:'IG',
  	date:'2018-11',
  	event:'S8世界总决赛冠军!'
  }
]
// 事件通过数组存放 

server.use('/public/',express.static('./public/'))
// 开放公开文件夹,可以通过url访问这个文件夹下级文件,前一个参数是监听带有/public/的url
// 后一个是指定url中的/public/对应的文件夹

server.engine('html',require('express-art-template'))
// 引入art-template应该同时安装express-art-template和art-template两个bao
// 虽然后面一个不会被引入,却是前者包的依赖。前一个参数是模板文件的后缀名。

server.get('/',function(req,res){
    res.render('index.html',{
    	events: events
    	// 模板引擎的使用,替换占位符中的数据
    })
})
// 监听url路径

server.get('/yous',function(req,res){
    res.render('yous.html')
})
// 监听的是get方式请求的带有/yous的url


server.post('/yous',function(req,res){
	var event = req.body
	// 通过上面的body-parser插件将复杂的post请求的的请求体,包装成get方式请求的query的格式
	event.date = '2018-12-5'
	events.push(event)
    // res.statusCode = 302
    // res.setHeader('Location','/')
    // 这次原生的代码方式,下面直接使用express中已经封装的方法
    res.redirect('/') 
})
// 监听的是post方式请求的带有/yous路径,这是写完记录之后跳转的
// 跟上面监视的是同样的url,但是请求的方式不一样,所以对应不同的结果


server.listen(3000,function(){
	console.log('succeed')
})

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值