中通快递代码:快递中的路线优先级(priority express)

我想在express中实现以下路由的优先级(按此顺序):自定义网址,静态文件,错误页面。

目前我这样做:

let router = express.Router();
// custom urls (defined by me)
router.get("/foo", ...);
app.use(router);
// static files
app.use("/", express.static("path/to/public"));
// error pages (404, 500):
router.use((req, res, next) => { res.send("Custom 404 page."); });
router.use((err, req, res, next) => { res.send("Custom 500 page."); });

我的问题是我得到Custom 404 page为静态文件。如果我删除错误页面路由,静态文件工作正常,但我没有得到自定义 404 错误页面和 500 错误页面。

如何处理400500自定义错误页面,同时保持此优先级?

3

考虑到您的静态文件相对于您的index.jspublic文件夹中,这按预期工作:

文件夹结构:

- index.js
- public
    - index.html
Yourindex.js:
"use strict";
let express = require('express');
let app = express();
let router = express.Router();
// custom urls (defined by me)
app.get("/foo", function(req,res) {
    res.send('yay')
});
// static files
app.use("/", express.static("public"));
// error pages (404, 500):
router.use((req, res, next) => { res.send("Custom 404 page."); });
router.use((err, req, res, next) => { res.send("Custom 500 page."); });
app.use(router); // put it here instead of the beginning
app.listen(6666);

/foo的输出:

$ http get localhost:6666/foo
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 3
Content-Type: text/html; cht=utf-8
Date: Thu, 17 Mar 2016 09:54:30 T
ETag: W/"3-QCrLHD4/N9puG7bKytwxXQ"
X-Powered-By: Express
yay

/的输出:

$ http get localhost:6666
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Connection: keep-alive
Content-Length: 129
Content-Type: text/html; cht=UTF-8
Date: Thu, 17 Mar 2016 09:51:15 T
ETag: W/"81-15383fa840c"
Last-Modified: Thu, 17 Mar 2016 09:49:06 T
X-Powered-By: Express
<!DOCTYPE html>
<html lang="en">
<head>
    <meta cht="UTF-8">
    <title>Title</title>
</head>
<body>
Yay!!!
</body>
</html>

/bar的输出:

$ http get localhost:6666/bar
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 16
Content-Type: text/html; cht=utf-8
Date: Thu, 17 Mar 2016 09:51:19 T
ETag: W/"10-cReU2J3jD/VaD5KVhqwLow"
X-Powered-By: Express
Custom 404 page.

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(775)
Startup.xls:从 xlsimportrange
上一篇
Leonardo:Arduino Leonardo作为游戏手柄
下一篇

相关推荐

  • phpstorm中文强大的PHP开发工具

    PHPStorm是JetBrains公司出品的一款功能强大的PHP集成开发环境(IDE),它可以帮助开发者快速编写、调试和测试代码。它支持多种语言,包括PHP、JavaScript、HTML、CSS和XML,可以帮助开发者快速构建功能丰富的Web应用程序。…

    2023-03-31 13:11:35
    0 78 90
  • php 正则匹配url:从 URL 中提取信息

    示例示例PHP正则匹配URL的代码示例如下:上述代码使用了正则表达式来匹配URL,以确定其有效性。…

    2023-03-02 15:58:48
    0 36 56
  • php序列化工具:Hello World;

    PHP序列化工具是一种将PHP变量转换为字符串的过程,以便将其存储在文件或数据库中,或者在网络上传输。序列化工具可以将复杂的数据结构(如对象和数组)转换为一个字符串,该字符串可以在以后重新转换回原始数据结构。…

    2023-03-25 01:15:25
    0 31 19
  • phpword模板替换让我们一起拥抱新的机遇

    PHPWord是一个开源的PHP库,可以用来创建、编辑和保存Microsoft Word文档。它可以轻松地生成DOCX文件,并且可以使用模板文件,以便在文档中插入文本、图像、表格等内容。…

    2023-05-05 01:38:37
    0 52 38
  • php 安装rabbitmq:如何使用 PHP 安装 RabbitMQ?

    示例示例安装Erlang要在PHP环境中使用,需要先安装Erlang,它是的运行环境。…

    2023-06-11 02:25:43
    0 33 17
  • php常用函数:使用PHP的array_merge函数合并数组

    示例示例PHP 常用函数有:array_merge():合并一个或多个数组…

    2023-08-16 14:58:10
    0 37 49
  • phpstorm 配置svn:如何在PhpStorm中配置SVN

    提交提交安装svn插件:在中选择File > > Plugins,然后点击Browse 按钮,搜索SVN,找到 插件,安装即可。…

    2023-07-08 15:48:53
    0 20 48
  • wpf datagrid样式:栏

    WPF DataGrid样式是用来定义DataGrid控件的外观和行为的XAML标记。它可以用来改变DataGrid的行高,列宽,表头,背景色,字体,等等。…

    2023-09-19 02:24:52
    0 11 70

发表评论

登录 后才能评论

评论列表(36条)