jcz*_*imm 1 javascript logging node.js express
我正在使用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');
});
Run Code Online (Sandbox Code Playgroud)
在"让它工作"方面,下面的代码将为404执行此操作.
我没有回答有关其他响应代码的任何内容,而是留给您.:)
让它工作
我改变了什么:
'http'和var server = http.createServer(app);,因为这些是不是真的需要app.listen到最后...所以它在所有快速配置完成后进行监听..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);
Run Code Online (Sandbox Code Playgroud)
快点:
我的猜测是你的代码中的一些问题是基于这样一个事实,即许多表达教程/指南是为v.3.x编写的,但v.4.x中的变化足够大,以至于它不是很容易理解什么可能仍然有效,什么不可行.
例如,您只使用morgan快速v.4.x应用程序,但代码中的一些内容看起来像是来自v.3.x应用程序/示例/教程.当我开始时,同样的事情正在发生,因为快递从v.2.x转移到v.3.x ...所以是的.我感觉到你的痛苦.
| 归档时间: |
|
| 查看次数: |
3808 次 |
| 最近记录: |