开发框架Express
一、使用原因
由于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的更多相关文章
- 搭建开发框架Express,实现Web网站登录验证
NodeJS学习笔记(一)——搭建开发框架Express,实现Web网站登录验证 JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需 ...
- 基于 Node.js 平台的web开发框架-----express
express官网:---->传送门 express express框架有许多功能,比如路由配置,中间件,对于想配置服务器的前端来说,非常便捷 自从node发展之后,基于nodejs的开发框架 ...
- 转:基于node的web开发框架Express入门
JavaScript 标准参考教程(alpha) 草稿二:Node.js Express框架 GitHub TOP Express框架 来自<JavaScript 标准参考教程(alpha)&g ...
- node 搭建开发框架express
参考地址: http://www.itnose.net/detail/6095003.html 开发环境 E:\project> node -v v0.10.30 E:\project> ...
- NodeJS学习笔记(一)——搭建开发框架Express,实现Web网站登录验证
JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器.每一种解析器都是一个运行环境,不但允许J ...
- 使用node.js的开发框架express创建一个web应用
1.1.1:搭建环境 1.安装Express 按键:Windows+R=>输入cmd,打开命令行,输入 npm install -g express@3 我们需要用全 ...
- 【原】无脑操作:express + MySQL 实现CRUD
基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...
- Nodejs开发框架Express3.0开发手记–从零开始
转载请注明出处: http://blog.fens.me/nodejs-express3/ 程序代码已经上传到github有需要的同学,自行下载. https://github.com/bsspiri ...
- 最流行的Node.js应用开发框架简介
最流行的Node.js应用开发框架简介 快速开发而又容易扩展,高性能且鲁棒性强.Node.js的出现让所有网络应用开发者的这些梦想成为现实.但是,有如其他新的开发语言技术一样,从头开始使用Node.j ...
随机推荐
- MMKV 多进程K-V组件 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- JAVA调用ORACLE存储过程时间类型参数没有日期
是因为使用cs.setDate()给数据库传参数只会传日期部分.如果改用如下代码就可以: cs.setTimestamp(3, new java.sql.Timestamp(dKssj.getTime ...
- VMware 网络介绍
3.1 网卡介绍 如图所示,你的机器有两块网卡,一个是有线,一个是无线. 装完VM之后,会出现两块虚拟网卡,如图 VM有四种连接方式,我们着重介绍前三种 3.2 桥接 选择桥接模式,说明V ...
- kubernetes--配置文件
- 一 python并发编程之多进程
一 进程与程序 二 并发与并行 三 同步\异步和阻塞\非阻塞 四 进程的创建 五 进程的终止 六 进程的层次结构 七 进程的状态 八 进程并发的实现 一 进程与程序 什么是进程: 进程的概念:我们知道 ...
- JAVA基础之HttpServletResponse响应
用户在客户端输入网址(虚拟路径)时,开始发送一个HTTP请求(请求行.请求头.请求体)至服务器.服务器内的Tomcat引擎会解析请求的地址,去找XML文件,然后根据虚拟路径找Servlet的真实路径, ...
- 在DoNetCore MVC 中如何使用AutoMapper
刚开始,按照在donet mvc 的方法写了一遍,发现行不通啊,于是百度了一下,找到这么一篇 https://stackoverflow.com/questions/41284349/automapp ...
- Java里面获取当前服务器(linux环境)的IP地址--与请求者的真实IP
package com.wfd360.Util; import javax.servlet.http.HttpServletRequest; import java.net.Inet4Address; ...
- MYSQL5.7生成列简介及创建
1.说明 生成列是由已存在的字段通过表达式计算得来的 2.生成列类型 VIRTUAL,即虚拟类型,字段值不实际存储,当读取行时再计算,虚拟列类型不占存储 STORED,即存储类型,字段值会实际存储起来 ...
- Ubuntu安装Java环境经历
1.权限不够 sudo su gedit /etc/sudoers 添加 用户名 ALL=(ALL:ALL) ALL 2.配置java 放到 /usr/lib/jvm/下 sudo gedit /et ...