欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > node.js 实战——express框架——知识点

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

2025/4/30 18:42:15 来源:https://blog.csdn.net/weixin_46282323/article/details/147475784  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词