node.js 实战——express框架——知识点

express

express 是一个基于Node.js 平台的极简、灵活的WEB应用开发框架

安装express

npm i express

导入

require('express')

创建应用对象

const app = express()

创建路由

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

})

监听端口,启动服务

app.listen(3000,()=>{
    console.log('启动成功')
});

初体验版的完整代码

const express = require('express');

const app =express();

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

app.listen(3000,()=>{
    console.log('启动成功')
});

express 路由

路由确定了应用程序如何响应客户端对特定端点的请求

路由组成

包括有请求方法,路径和后调函数;语法如下:

app<method>(path,callback)

method 包括get 、post、put、delete 和HTTP协议中的一致

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

回调函数中包括有两个参数,一个是request 和response ,分别是请求报文和响应报文;其中的知识点和 node中http 模块是一致的,可以去node.js 实战——(Http 知识点学习) 了解

中间件

本质上是一个回调函数
作用:使用函数封装公共操作,简化代码

全局中间件

每一个请求到达服务端之后都会执行全局中间件函数

const express = require('express');

const app =express();

function record(req,res,next){
    //先写自己的操作
  console.log(req.method,res.statusCode);

    next() //表示执行后面的操作
}

app.use(record);

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

app.listen(3000,()=>{
    console.log('启动成功')
});

在这里插入图片描述

路由中间件

作用在某些路由上,比如说,要求登陆之后才能使用的路由

const express = require('express');

const app =express();

let check =(req,res,next)=>{
    next();
}
app.get('/',check, (req, res) => {
    res.send('Hello World!nihao ');
})

app.listen(3000,()=>{
    console.log('启动成功')
});

静态资源中间件

app.use(express.static(path.join(__dirname,'public')));

注:

  1. index.html 是默认打开的资源
  2. 如果静态资源与路由规则同时匹配,谁先匹配谁就响应
  3. 路由响应动态资源,静态资源中间件响应静态资源

获取请求体数据

自 Express 4.16.0 起,部分功能已内置在 express 中,无需单独安装,但仍可使用 body-parser 模块以保持兼容性。
安装body-parser

npm install body-parser

使用

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

// 解析 JSON 数据
app.use(bodyParser.json());

// 解析 URL-encoded 表单数据
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/login', (req, res) => {
  const { username, password } = req.body;
  res.send(`用户名:${username}, 密码:${password}`);
});

防盗链

盗链(Hotlinking) 是指别人网站直接引用你网站上的资源(如图片、视频、音频等),消耗的是你的服务器流量,但收益却归别人。

作用

  • 节省服务器带宽和成本
  • 防止图片/视频被非法滥用
  • 提高品牌保护

实现方法

检查 Referer 请求头,判断资源是否是从自己网站请求的

app.get('/protected-img/:filename', (req, res) => {
  const referer = req.get('Referer');

  if (referer && !referer.startsWith('https://yourdomain.com')) {
    return res.status(403).send('禁止盗链');
  }

  const filePath = path.join(__dirname, 'public/images', req.params.filename);
  res.sendFile(filePath);
});

express 应用程序生成器

Express 应用程序生成器(express-generator)是一个非常实用的脚手架工具,用来快速创建一个结构清晰的 Express 项目骨架,省去了手动搭建文件结构的麻烦,特别适合初学者和快速开发原型

🚀 1. 安装 express-generator

npm install -g express-generator

🏗️ 2. 创建一个项目

express myapp

📁 3. 项目结构说明

myapp/
├── app.js              # 主应用文件
├── bin/www             # 启动服务器的入口
├── public/             # 静态资源(如图片、CSS、JS)
├── routes/             # 路由定义(如 index.js, users.js)
├── views/              # 模板文件(如 .ejs/.pug/.hbs)
├── package.json        # 项目描述和依赖

⚙️ 4. 启动项目

cd myapp
npm install
npm start

默认会监听 http://localhost:3000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

layman0528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值