一、使用原因

由于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-template
npm 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-parser
var 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-parser
app.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...')
});

开发框架Express的更多相关文章

  1. 搭建开发框架Express,实现Web网站登录验证

    NodeJS学习笔记(一)——搭建开发框架Express,实现Web网站登录验证   JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需 ...

  2. 基于 Node.js 平台的web开发框架-----express

    express官网:---->传送门  express express框架有许多功能,比如路由配置,中间件,对于想配置服务器的前端来说,非常便捷 自从node发展之后,基于nodejs的开发框架 ...

  3. 转:基于node的web开发框架Express入门

    JavaScript 标准参考教程(alpha) 草稿二:Node.js Express框架 GitHub TOP Express框架 来自<JavaScript 标准参考教程(alpha)&g ...

  4. node 搭建开发框架express

    参考地址: http://www.itnose.net/detail/6095003.html 开发环境 E:\project> node -v v0.10.30 E:\project> ...

  5. NodeJS学习笔记(一)——搭建开发框架Express,实现Web网站登录验证

    JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器.每一种解析器都是一个运行环境,不但允许J ...

  6. 使用node.js的开发框架express创建一个web应用

    1.1.1:搭建环境     1.安装Express           按键:Windows+R=>输入cmd,打开命令行,输入 npm install -g express@3 我们需要用全 ...

  7. 【原】无脑操作:express + MySQL 实现CRUD

    基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...

  8. Nodejs开发框架Express3.0开发手记–从零开始

    转载请注明出处: http://blog.fens.me/nodejs-express3/ 程序代码已经上传到github有需要的同学,自行下载. https://github.com/bsspiri ...

  9. 最流行的Node.js应用开发框架简介

    最流行的Node.js应用开发框架简介 快速开发而又容易扩展,高性能且鲁棒性强.Node.js的出现让所有网络应用开发者的这些梦想成为现实.但是,有如其他新的开发语言技术一样,从头开始使用Node.j ...

随机推荐

  1. php的json_encode第二个参数学习及应用

    php5.4以上: json_encode($data, JSON_FORCE_OBJECT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); p ...

  2. Django使用distinct报错:DISTINCT ON fields is not supported by this database backend

    具体错误提示是:django.db.utils.NotSupportedError: DISTINCT ON fields is not supported by this database back ...

  3. 工信部要求应用商店上新 App 检查 IPv6,这里有一份 IPv6 快速部署指南

    7 月 25 日,工业和信息化部信息通信发展司组织召开部署推进 IPv6 网络就绪专项行动电视电话会议.会议指出,加快推进 IPv6 规模部署,构建高速率.广普及.全覆盖.智能化的下一代互联网,是互联 ...

  4. WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码

    原文:WPF 像素着色器入门:使用 Shazzam Shader Editor 编写 HLSL 像素着色器代码 HLSL,High Level Shader Language,高级着色器语言,是 Di ...

  5. 玩转dockerfile

    镜像的缓存特性 Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建. 举例说明.在前面的 Dockerfile 中添加一点新内容,往镜像中复制一个文件: ...

  6. 4.matplotlib绘制直方图

      # coding=utf-8 from matplotlib import pyplot as plt from matplotlib import font_manager a=[131, ...

  7. 小知识:讲述Linux命令别名与资源文件的区别

    别名 别名是命令的快捷方式.为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用.语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令.重要的 ...

  8. 软件平台ThinkSNS+软件系统研发日记

    NO.1: 实用开源软件安装部署是第一步, ThinkSNS+响应快速安装,易于二开基准,为大家录制了一份宝塔面板安装社交系统ThinkSNS+视频教程,点开观看视频一起吸一吸. 若无法播放,请直接打 ...

  9. 一分钟告诉你什么是OPC DA质量代码

    [关于TOP Server OPC Server试用版可登录慧都网该产品下载页进行下载] OPC DA(OPC实时数据访问规范)定义了包括数据值,更新时间与数据品质信息的相关标准.这个定义相信大家都很 ...

  10. 如何免费试用SAP的Fiori应用

    什么是SAP Fiori?SAP Fiori不是SAP发布的某款产品,而是SAP新一代UI设计风格和用户体验的代号. Fiori是一个意大利语中的单词,意思是"花": 不得不说SA ...