Node(六)

Express框架

是NodeJS的框架:封装了http模块,并对http进行了扩展,简化了基于NodeJS在Web服务器端的开发。可以方便的获取请求参数和进行路由处理。

1.安装

项目初始化:npm init

安装express模块:npm install express

查看express版本号:npm list express

2.创建Web服务器的步骤

1)引入express模块
(2)调用express()方法创建服务器对象
(3)定义路由
(4)启动监听:调用listen()方法
//1.引入express对象
const express = require("express");

//2.创建Web服务器对象
const app = express();

//3.创建get路由:接受客户端的get请求
app.get("/",(req,res)=>{
    res.end("Hello Express");
})
app.get("/list",(req,res)=>{
    res.end("Hello ListPage");
})

//4.启动监听
app.listen(3000);

console.log("服务器运行在3000端口");

3.Express中间件

Express中间件(Middleware):是指业务流程的中间处理环节。可以把中间件理解为处理客户端请求的一系列方法。

(1)组成:

	A、中间件方法:由Express提供用来拦截用户请求
	
	B、请求处理函数:由开发人员编写,负责处理客户端的请求

(2)常用的中间件方法:

app.get("请求路径","请求处理函数"):拦截get方式的请求

app.post("请求路径","请求处理函数"):拦截post方式的请求

app.use("请求路径","请求处理函数"):调用其他的模块

(3)利用中间件处理静态资源

使用static()中间件,在客户端访问服务器端的静态资源时使用

express.static():是express内置的中间件,参数是静态资源所在的目录,要作为app.use的参数来使用

常用的静态资源:图像、html、css文件、JavaScript文件

(4)利用中间件处理错误

const express = require("express");

const fs = require("fs");

const app = express();

app.get("/readfile",(req,res,next)=>{

    fs.readFile("./a/txt","utf-8",(err,result)=>{
        if(err != null){    //若读文件错误,则调用下一个中间件并将错误传过去
            next(err)
        }else{
            res.send(result);
        }
    })
})

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

app.listen(3000);
console.log("服务器运行在3000端口上");

4.模块化路由

通过express.Rourer()实现路由的模块化管理

(1)创建路由对象

const route = express.Router();

route.get("请求路径","请求处理函数");

route.post("请求路径","请求处理函数");

module.exports = route;

例如:
	route.get("/index",()=>{})    //二级路由,'/'表示当前路由的上一级目录

(2)在主程序最终引入路由模块

app.use("/请求路径","路由模块名");

例如:
	app.use('/deyun',route);    //以及路由,'/'表示的是服务器的根目录

	http://localhost:3000/deyun/index
const express = require("express");

//创建路由对象
const route = express.Router();

//用路由对象实现路由
route.get("/home",(req,res)=>{
    res.send('路由模块化')
})

//将路由对象导出
module.exports = route;
const express = require("express");

//导入路由文件
const route = require("./route/home")

const app = express();

//应用路由
app.use("/deyun",route);

app.listen(3000);
console.log("服务器运行在3000端口上");

5.Express接受请求参数

(1)接收get请求的参数

使用req.query.参数名来获取

(2)接收post请求的参数

使用body-parser模块

(3)接受路由参数

接收路由参数:在定义路由时,可以在请求路径上进行参数传递

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值