Express框架

Express是基于Node.js的Web开发框架,提供HTTP工具和路由管理。介绍了如何安装Express,使用npm初始化并添加到依赖。强调了res.send和res.end的区别,send用于发送HTTP响应,能处理多种数据类型;end用于结束响应,通常用于发送Buffer或字符串数据。还讲解了Express中的路由分发,包括GET、POST、PUT和DELETE等常见HTTP请求方式的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

基于 Node.js 平台,快速、开放、极简的 Web 开发框架
是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。

Express 框架核心特性:

  • 可以设置中间件来响应 HTTP 请求。
  • 定义了路由表用于执行不同的 HTTP 请求动作。
  • 可以通过向模板传递参数来动态渲染 HTML 页面。

安装 Express

  1. 因为Express基于 Node.js 平台,使用此框架需要先下载node.js
  2. 通过 npm init 命令为你的应用创建一个 package.json 文件
  3. 安装 Express 并将其保存到依赖列表中 cnpm install express --save

注:Express使用时需先引入

//引入有两步
const express = require('express'); // 返回的一个函数
const app = express();  // 在这里 接受 返回的函数
//或可简写
const app = require('express')();

node.js用Express框架和不用的区别

例如:get请求的路由分发
不用框架时

const http = require("http");
http.createServer((req,res) => {
	if(req.url.startsWith("/index")){
		res.end('Hello index');
	}else{
		res.end('404 找不到页面');
	}
}).listen(3000,() => {
	console.log('run......');
});

用Express框架时

const express = require('express');
var app = express();
app.get('/index',(req,res) => {
	res.send('Hello index');
});
app.listen('3000',() => {
 	console.log('run......')
});

res.send和res.end的区别

1.res.send–>发送HTTP响应

可以有三个参数 Buffer对象 string对象 Array

此方法对简单的非流式响应执行许多有用的任务:例如,它自动分配Content-LengthHTTP响应标头字段(除非事先定义),并提供自动的HEAD和HTTP缓存新鲜度支持。

  • 当参数为Buffer对象时,该方法将Content-Type响应头字段设为 application /
    octet-stream,除非设置响应头
  • 当参数为string对象时,该方法将content-type响应头字段设置为text/html
  • 当参数为Array或object,将以json形式表示响应

2.res.end–》(data,encoding,callback)也可以不传参

data.只能发送Buffer和string的数据

此方法向服务器发出信号,表明已发送所有响应头和主体,该服务器应该视为此消息已完成。 必须在每个响应上调用此 response.end() 方法。

  • 如果指定了 data,则相当于调用 response.write(data, encoding) 之后再调用
    response.end(callback)。
  • 如果指定了 callback,则当响应流完成时将调用它。

分发路由

get请求的路由分发

app.get('/',(req,res) => {
	res.send('分发路由');
})

正则表达式 分发路由

app.get(/^\/index(\/.+)*$/,(req,res) => {//端口号可以写多个/index
	res.send('正则分发路由')
})

设置端口 监听

//第一种
app.get('/',(req,res) => {
	res.send('分发路由');
})
app.listen(3000,() => {
	console.log('run......')
});
//第二种
let server = app.get('/',(req,res) => {
	res.send('分发路由');
})
server.listen(3000,() => {
	console.log('run......')
});

注:推荐第二种方式

托管 静态文件

const  express = require('express');
const app = express();

let server = app.use(express.static('public'));

//添加静态资源文件的   虚拟路径
let server = app.use('/abc',express.static('public'));

server.listen(3000,() => {
	console.log('run......');
})

几种常见的请求方式

GET

从服务器取出资源(一项或多项)
GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连。

app.get('/',(req,res)=>{
 	res.send('get');
})

POST

在服务器新建一个资源。
POST把提交的数据则放置在是HTTP包的包体中。

app.post('/',(req,res)=>{
	res.send('post');
})

PUT

在服务器更新资源(客户端提供改变后的完整资源)

app.put('/',(req,res)=>{
	res.send('PUT');
})

Delete

从服务器删除资源

app.delete('/',(req,res)=>{
	res.send('delete');
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值