当前位置: 首页 > wzjs >正文

好的网站建设专业公司wordpress地址跟站点

好的网站建设专业公司,wordpress地址跟站点,网站开发工作总结,360搜索网站提交目录 1. 目录结构 2. 代码实现 注意事项 1:必须调用 next() 注意事项 2:中间件的执行顺序很重要 注意事项 3:局部中间件的使用 注意事项 4:统一处理 404 注意事项 5:使用错误处理中间件 3. 总结 在Node.js的Ex…

目录

1. 目录结构

2. 代码实现

注意事项 1:必须调用 next()

注意事项 2:中间件的执行顺序很重要

注意事项 3:局部中间件的使用

注意事项 4:统一处理 404

注意事项 5:使用错误处理中间件

3. 总结


在Node.js的Express框架中,中间件是处理请求和响应的关键组件,它可以用于日志记录、权限验证、错误处理等任务。使用中间件时,有一些重要的注意事项需要了解,以确保代码的稳定性和可维护性。下面,我们详细介绍5个注意事项,并提供示例代码帮助理解。


1. 目录结构

/your-project├── app.js                # 主文件,启动应用├── middleware│   ├── logger.js         # 日志中间件│   ├── auth.js           # 身份验证中间件│   ├── requestTime.js    # 记录请求时间的中间件│   ├── notFound.js       # 404 处理中间件│   ├── errorHandler.js   # 全局错误处理中间件└── package.json          # 项目依赖管理文件

2. 代码实现

注意事项 1:必须调用 next()

中间件函数必须调用 next(),否则请求会卡住,无法继续执行下一个中间件或路由处理程序。

// middleware/logger.js
const logger = (req, res, next) => {console.log(`Received ${req.method} request for ${req.url}`);next(); // 必须调用,否则请求不会继续
};module.exports = logger;

app.js 中使用:

// app.js
const express = require('express');
const app = express();
const logger = require('./middleware/logger');app.use(logger);app.get('/', (req, res) => {res.send('<h1>Home Page</h1>');
});app.listen(3000, () => {console.log('Server running on http://localhost:3000');
});

运行结果: 访问 http://localhost:3000/ 时,控制台输出:

Received GET request for /

注意事项 2:中间件的执行顺序很重要

Express 按照 app.use()app.get() 的顺序执行中间件,错误的顺序可能导致某些中间件失效。

// middleware/requestTime.js
const requestTime = (req, res, next) => {req.requestTime = new Date();next();
};module.exports = requestTime;

app.js 中:

const requestTime = require('./middleware/requestTime');app.use(requestTime);app.get('/time', (req, res) => {res.send(`<h1>Request received at: ${req.requestTime}</h1>`);
});

访问 http://localhost:3000/time,页面会显示请求的时间。


注意事项 3:局部中间件的使用

中间件不一定要全局生效,可以局部应用于特定路由,以减少不必要的开销。

// middleware/auth.js
const auth = (req, res, next) => {if (req.query.auth === 'true') {next(); // 通过认证} else {res.status(403).send('<h1>Access Denied</h1>');}
};module.exports = auth;

app.js 中:

const auth = require('./middleware/auth');app.get('/dashboard', auth, (req, res) => {res.send('<h1>Welcome to the Dashboard</h1>');
});

访问 http://localhost:3000/dashboard?auth=true 显示:

Welcome to the Dashboard

访问 http://localhost:3000/dashboard 显示:

Access Denied

注意事项 4:统一处理 404

如果没有匹配的路由,应该使用一个中间件来返回 404,避免请求进入死循环。

// middleware/notFound.js
const notFound = (req, res) => {res.status(404).send('<h1>404 - Not Found</h1>');
};module.exports = notFound;

app.js 末尾添加:

const notFound = require('./middleware/notFound');app.use(notFound);

访问不存在的路由,如 http://localhost:3000/unknown,页面显示:

404 - Not Found

注意事项 5:使用错误处理中间件

Express 提供了一个特殊的错误处理中间件,必须使用 err, req, res, next 作为参数。

// middleware/errorHandler.js
const errorHandler = (err, req, res, next) => {console.error(`Error: ${err.message}`);res.status(500).send('<h1>Internal Server Error</h1>');
};module.exports = errorHandler;

app.js 中:

const errorHandler = require('./middleware/errorHandler');app.get('/error', (req, res, next) => {const err = new Error('Something went wrong!');next(err); // 触发错误处理
});app.use(errorHandler);

访问 http://localhost:3000/error,页面显示:

Internal Server Error

终端输出:

Error: Something went wrong!

3. 总结

  1. 必须调用 next(),否则请求会卡住。

  2. 中间件的执行顺序很重要,顺序错误可能导致某些功能失效。

  3. 局部中间件适用于特定路由,可以提高性能和安全性。

  4. 提供 404 处理,避免未匹配的请求进入死循环。

  5. 使用错误处理中间件,集中处理错误,提高可维护性。

希望本教程能帮助你更好地理解和使用Node.js的Express中间件!

 


文章转载自:

http://n83iPkGg.xLpdm.cn
http://ZJVMQDfx.xLpdm.cn
http://jcECXd16.xLpdm.cn
http://e0jKqTsk.xLpdm.cn
http://5zEF9Zv5.xLpdm.cn
http://L7RTLihP.xLpdm.cn
http://xteQXUfE.xLpdm.cn
http://YacJDDfX.xLpdm.cn
http://jOS3lac0.xLpdm.cn
http://fM2wvovu.xLpdm.cn
http://4xrBTEv7.xLpdm.cn
http://0OAnl6T5.xLpdm.cn
http://8qo3i7xb.xLpdm.cn
http://a8su8k77.xLpdm.cn
http://uO1HSwc2.xLpdm.cn
http://mZEcMGeX.xLpdm.cn
http://XwZsDy7n.xLpdm.cn
http://y9I9ME0n.xLpdm.cn
http://gDTUvPfy.xLpdm.cn
http://zH7Y5D7T.xLpdm.cn
http://U72U6ghj.xLpdm.cn
http://e6xOtFbd.xLpdm.cn
http://JHCyMpfS.xLpdm.cn
http://4SFciCFP.xLpdm.cn
http://4cmAZCdy.xLpdm.cn
http://x3F806hH.xLpdm.cn
http://EVqDjME1.xLpdm.cn
http://bTJQcUs8.xLpdm.cn
http://VkRzK4Vl.xLpdm.cn
http://soVHY3lu.xLpdm.cn
http://www.dtcms.com/wzjs/609906.html

相关文章:

  • 网站建设需求计划网络营销服务
  • 营销型网站建设选择题平价网站建设
  • 网站建设中 页面南通企业做网站
  • 长春网站制作诚推源晟wordpress插件申请软著
  • 唐山公司网站制作软件界面设计图
  • 做笔记的网站源码企业简介模板范文
  • 网站建设哪里最好ftp网站上传之后怎么办
  • 制作网站哪家便宜北京平面设计工作室
  • 跨境电商自己做网站引流wordpress 404宝塔
  • 网站编辑招聘信息sql数据库添加网站
  • 网站建设技术合同手机网站建设专家
  • 最早做弹幕的网站响应式网站模板
  • 上海网站建设网济宁网站建设招聘
  • 山西做网站费用做网站开发平台
  • 东莞医疗网站建设报价在wordpress官网建站
  • 网页商城设计商城网站设计案例国外的域名注册网站
  • 平台式网站模板下载吉林网站模板
  • 做外贸要建什么网站婚庆设计效果图
  • 东莞建英文网站的公司南京紫米网络科技有限公司
  • 自己建网站做代理商iis建好的网站套用模板
  • 网站竞价词怎么做wordpress 文章编辑框插件
  • 大学校园网站建设的新开传奇最大网站999
  • 江苏网站建设定制外包网站制作
  • 晋江市住房和城乡建设局网站是多少广州网站优化推广方案
  • 深圳网站建设大概多少钱上海网站原型设计
  • 浙江英文网站建设iis怎么搭建设计网站
  • 自己做qq头像网站岷县城乡建设局网站
  • 建设电影播放网站全国设计网站公司网站
  • 成都网站制作怎么收费哈尔滨企业建站
  • 校园网站建设依据注册公司成本多少钱