express 基本用法

news/2025/3/18 18:01:33/文章来源:https://www.cnblogs.com/zhuangdd/p/18779216

 

 启动一个http服务.

import express from 'express';const app = express() //express 是个函数

app.listen(3000, () => {console.log("服务器启动成功,3000");
});

 

 

get 和post接口

//get
//api地址,回调函数req是请求,res是响应
app.get("/get", (req, res) => {console.log(req.query);res.send("get");
});app.post("/post", (req, res) => {
//   req.bodyconsole.log(req.body); //需要引入插件才能获得res.send("post");
});app.get("/get/:id", (req, res) => {//req.params
    res.send(req.params.id);
});

接受前端的参数

get 用req.query

get 动态参数 用req.params

 

post 

如果前端使用的是post并且传递json 需要注册此中间件 不然是undefined

app.use(express.json()); //解析json格式

 

模块化

 

src/user.js

import express from 'express'const router = express.Router()router.post('/login', (req, res) => {res.json({message: 'Login',code: 200})
})router.post('/register',()=>{res.json({message: 'Register',code: 200})
})export default router

 

 src/list
import express from "express";const router = express.Router();router.get("/getAll", (req, res) => {res.json({ message: "获取成功", code: 200, data: [{ id: 1 }] });
});export default router;

 

最后在app.js导入使用

import express from "express";import User from "./src/user.js"
import List from "./src/list.js"
const app = express();app.use(express.json()); //解析json格式
app.use('/user',User)
app.use('/list',List)。。。。

注意

使用接口的适合 需要再加一层  比如 

app.use('/user',User)
那么接口就是 /user/api

 

中间件

中间件是一个关键概念。中间件是处理HTTP请求和响应的函数,它位于请求和最终路由处理函数之间,可以对请求和响应进行修改、执行额外的逻辑或者执行其他任务。

中间件函数接收三个参数:req(请求对象)、res(响应对象)和next(下一个中间件函数)。通过调用next()方法,中间件可以将控制权传递给下一个中间件函数。如果中间件不调用next()方法,请求将被中止,不会继续传递给下一个中间件或路由处理函数

 

实现一个日志中间件

npm install log4js

log4js是一个用于Node.js应用程序的流行的日志记录库,它提供了灵活且可配置的日志记录功能。log4js允许你在应用程序中记录不同级别的日志消息,并可以将日志消息输出到多个目标,如控制台、文件、数据库等

 
 \middleware\logger.js
import log4js from 'log4js'
//控制台输出 文件也要输出
log4js.configure({appenders: {out:{type: 'stdout',layout: {type: 'colored',}},file:{filename:'logs/server.log',type:'file',}},categories: {default: {appenders: ['out','file'],level: 'debug'}}
})//req 接收前端数据
//res 返回给前端数据
//next 执行下一个中间件, 没有的话就卡住

const logger = log4js.getLogger('default')const LOggerMiddleware = (req, res, next) => {logger.debug(`[${ req.method }] ${req.url}`)next()
}export default LOggerMiddleware;

 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901038.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 合并时出现 Please enter a commit message to explain why this merge is necessary 问题解决

1. 报错现象 2. 报错文字merge brach "dev" # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with # will be ignored, and an empty message a…

3.18 学习记录

将仓库管理系统的前端框架使用vue3搭建完成,修改了后端的部分bug,实现了登录功能,其他页面功能还未完成

MySQL 常用储存引擎

1一.存储引擎概述 定义‌:存储引擎是MySQL用于管理数据存储、查询、事务处理的底层组件。 ‌核心作用‌:决定数据如何存储、索引如何组织、事务是否支持等。 点击查看mysql逻辑架构概述 查看数据库所支持的存储引擎SHOW ENGINES; Engine: 表示存储引擎的名称 Support: 表示…

巧用输出变量,提升Dolphinscheduler工作流灵活性和可维护性

输出变量是 DolphinScheduler 任务调度中实现数据流动与任务协作的核心机制,通过显式定义和传递参数,解决了跨节点数据共享、优先级冲突等问题,同时支持复杂流程编排(如子流程、条件分支)。合理使用输出变量能显著提升工作流的灵活性和可维护性。本文将介绍 DolphinSchedu…

3.18 关系

1.1 笛卡尔积 序偶/元组 是有顺序的1.2 笛卡尔积与关系关系就两种:集合A上的二元关系/集合A到集合B的二元关系关系是笛卡尔积的子集 1.3 特殊关系

Spring AI Alibaba 应用框架挑战赛圆满落幕,恭喜获奖选手

Spring AI Alibaba 是一款 Java 语言实现的 AI 应用开发框架,用于加速和简化 Java 开发者的 AI 应用开发,定义 Spring 框架下的 AI 应用开发模式。本项目基于 Pivotal 公司开源的 Spring AI 开源项目构建,突出 Spring AI 与阿里云开源/商业生态的集成与最佳实践,集成范围涉…

干锅菜单

100001、 100002、 100003、 100004、 100005、 100006、 100007、 100008、本人前端水平有限,写的知识点可能有谬误,欢迎留言指正,如果看到,我将第一时间回复。感谢支持!

汤锅菜单

110001、 110002、 110003、 110004、本人前端水平有限,写的知识点可能有谬误,欢迎留言指正,如果看到,我将第一时间回复。感谢支持!

web153笔记(后端不能单⼀校验,后端校验要严密+过滤php+.user.ini文件包含)

这⼀次再传php就拦截下来了,这⾥开始可以⽤ .user.ini 来构造后⻔php.ini是php的⼀个全局配置⽂件,对整个web服务起作⽤;⽽.user.ini和.htaccess⼀样是⽬录的配置⽂件,.user.ini就是⽤户⾃定义的⼀个php.ini,我们可以利⽤这个⽂件来构造后⻔和隐藏后⻔。.htaccess是Apache…

VISIO-visio2013激活工具亲测有效

如果觉得对您有帮助 还请点赞收藏,谢谢~ 通过网盘分享的文件:激活工具 链接: https://pan.baidu.com/s/1y4FDjp59CoXtcB70_q1slA?pwd=sky1 提取码: sky1