博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开发框架Express
阅读量:4663 次
发布时间:2019-06-09

本文共 3209 字,大约阅读时间需要 10 分钟。

一、使用原因

由于nodejs原生的http核心模块在某些方面不足以应对开发需求,所以就需要使用框架来加快开发效率,让代码更高度统一。在nodejs中有许多web开发框架,以下介绍Express的使用

二、安装

三、初步使用

// 引入包var express=require('express');// 创建服务器应用程序var app=express();// 当服务器收到get请求(敲回车一定是get请求),执行回调处理函数app.get('/',function(req,res){    res.send('hello express')});// 绑定端口号app.listen(3000,function(){    console.log('app is running at port 3000')});

四、基本路由

①get

// 当服务器收到get请求(敲回车一定是get请求),执行回调处理函数app.get('/',function(req,res){    res.send('hello express')});

②post

// 当服务器收到post请求,执行回调处理函数app.post('/',function(req,res){    res.send('Got a POST resquest')});

五、静态服务

app.use('/public/',express.static('./public/'));//方式1:url当以/public/开头的时候,去./public/目录中找对应的资源,推荐app.use('/a/public/',express.static('./public/'));//方式2:url必须是以/a/public/开头,去./public/目录中找对应的资源(起别名)app.use(express.static('./public/'));//方式3:省略第一个参数,则可以通过省略 /public/ 的方式去访问(跳级)

六、在express中使用art-template模板引擎

①安装

npm install --save art-templatenpm install --save express-art-template

②配置

//引入express框架var express=require('express')var app=express()//第一个参数默认是art,代表的是.art后缀的文件,这里可以写成html//express-art-template是express来整合art-templatedao的,虽然不用加载art-template,但是也必须安装app.engine('html',require('express-art-template'))

③使用

app.get('/',function(req,res){    //express为response相应对象提供了一个方法render('html模板名',{模板数据}),默认是不可以使用的,配置模板引擎以后就可以使用    //第一个参数不能写路径,express默认会去项目中的views目录找index.html(约定视图文件放在views目录)    res.render('index.html',{        title:'hello world'     })})

④修改默认的views视图渲染存储目录

//注意:第一个参数views欠我不能写错app.set('views',目录路径)

七、express中获取post请求体(使用第三方包body-parser)

①安装

npm install --save body-parser

②配置

//引入express和body-parservar express=require('express')var bodyParser=require('body-parser')var app=express()//配置body-parser,配置以后,在req请求对象上会多出一个属性:body,后面就可以直接通过req.body来获取post请求的数据app.use(bodyParser.urlencoded({extended:false}))app.use(bodyParser.json())

③使用

app.use(function(req,res){    res.setHeader('Content-Type','text/plain')    res.write('you posted:\n'))    //可以通过req.body来获取post请求数据    //JSON.stringify(对象,参数2,参数3),    //参数2为null或者未提供,则对象所有的属性都会被序列化;参数3指定缩进用的空白字符串,数字代表有多少的空格    res.end(JSON.stringify(req.body,null,2)))})

八、利用express框架重构

①额外安装一些包

②修改表单提交为post请求

③修改app.js文件

// 加载模块var express=require('express');var bodyParse=require('body-parser');// 开放public目录var app=express();app.use('/public/',express.static('./public/'));// 配置art-template模板引擎app.engine('html',require('express-art-template'));// 配置body-parserapp.use(bodyParse.urlencoded({extended:false}));app.use(bodyParse.json());// 模拟首页留言列表数据var comments=[    {name:"赵一",message:"你用什么编辑器?",datetime:"2018-1-1"},    {name:"孙二",message:"今天天气真好",datetime:"2018-1-1"},    {name:"张三",message:"飞流直下三千只",datetime:"2018-1-1"},    {name:"李四",message:"哈哈哈哈哈",datetime:"2018-1-1"},    {name:"王五",message:"楼上是傻逼",datetime:"2018-1-1"}]//处理请求路径app.get('/',function(req,res){    res.render('index.html',{        comments:comments    })});app.get('/post',function(req,res){    res.render('post.html')});app.post('/say',function(req,res){    var comment=req.body;    comment.datetime='2018-5-5';    comments.unshift(comment);    res.redirect('/');});// 绑定端口app.listen(3000,function(){    console.log('server is running...')});

 

转载于:https://www.cnblogs.com/EricZLin/p/9295888.html

你可能感兴趣的文章
iterator与const_iterator
查看>>
Ubuntu中如何安装*.sty文件(TeTeX或Tex Live)
查看>>
归并排序
查看>>
设置android webview的背景颜色时没有效果
查看>>
mariadb的安装
查看>>
任务25:IHostEnvironment和 IApplicationLifetime介绍
查看>>
20个Flutter实例视频教程-第08节: 保持页面状态
查看>>
20个Flutter实例视频教程-第15节: 贝塞尔曲线切割
查看>>
前端代码组织优化--小demo(进阶你的思路)
查看>>
gif jpg bmp png的区别
查看>>
<JZOJ4269>挑竹签
查看>>
【5集iCore3_ADP演示视频】5-5 iCore3应用开发平台示波器和信号源校准
查看>>
前端模块化js
查看>>
ltrim、rtrim与trim 去除空格或者别的字符
查看>>
k8s cookbook读书笔记 第二章
查看>>
hdu 3709+hdu 3555(数位dp)
查看>>
Go学习笔记(3)字符串
查看>>
挑战编程题(三)
查看>>
Linux下的crontab定时执行任务命令详解
查看>>
iOS开发init方法解析
查看>>