gpt4 book ai didi

javascript - Morgan Logger with Express.js 只记录失败的请求

转载 作者:行者123 更新时间:2023-11-30 08:43:21 24 4
gpt4 key购买 nike

我将 Morgan 与 Express.js 一起使用,我认为我的中间件有问题,因为 Morgan 仅记录返回错误 302(重定向)的请求,这是在我的中间件捕获错误并重定向到其错误页面时发生的.

我是 Express.js 和所有中间件爵士乐的新手,所以我将不胜感激任何帮助。谢谢!

var http = require('http')
, express = require('express')
, app = express()
, logger = require('morgan');

app.use(express.static(__dirname + '/public'));
app.use(logger());

var server = http.createServer(app);
server.listen(8888);

// Handle 404
app.use(function(req, res) {
res.status(404).redirect('/error/404.html');
});

// Handle 500
app.use(function(error, req, res, next) {
res.status(500).redirect('/error/500.html');
});

最佳答案

就“让它工作”而言,下面的代码将针对 404 执行此操作。

我没有回答任何关于其他响应代码的问题,留给你。 :)

开始工作

我所做更改的总结:

  1. 我删除了对 'http'var server = http.createServer(app); 的依赖,因为它们并不是真正需要的
  2. 我将 app.listen 移到了最后...所以它会在所有 express 配置完成后进行监听。
  3. 我使用了 .sendfile() 方法而不是 .redirect() 因为我们只是发送状态信息

这在我的系统上有效。如果您对代码有任何疑问或问题,请发表评论,我会尽我所能提供帮助……但我不能保证在评论中出现奇迹。 :)

var express = require('express');
var app = express();
var logger = require('morgan');

// edited, moving `app.use(logger());` first so it can log everything...
app.use(logger());
app.use(express.static(__dirname + '/public'));


// Handle 404
app.use(function(req, res, next) {
res.status(404).sendfile('./error/404.html');
});

app.listen(8888);

快速旁白:

我的猜测是,您的代码中的一些问题是基于这样一个事实,即许多快速教程/指南是为 v.3.x 编写的,但 v.4.x 中的更改足够大,以至于它不是 super -很容易找出哪些可能仍然有效,哪些无效。

例如,您只将 morgan 与 express v.4.x 应用程序一起使用,但代码中的一些内容看起来像是来自 v.3.x 应用程序/示例/教程。当我开始时,同样的事情正在发生,因为 express 从 v.2.x 移动到 v.3.x...所以是的。我感觉到你的痛苦。

关于javascript - Morgan Logger with Express.js 只记录失败的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24233560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com