Морган устарел экспресс
Я изучаю nodejs прохождение учебника. Я столкнулся с проблемой, что учебник для более старой версии.
У меня есть этот код:
var express = require('express'),
stylus = require('stylus'),
logger = require('morgan'),
bodyParser = require('body-parser');
var env = process.env.NODE_ENV = process.env.NODE_ENV || 'development';
var app = express();
function compile(str, path){
return stylus(str).set('filename', path);
}
app.set('views', __dirname + '/server/views');
app.set('view engine', 'jade');
app.use(logger);
app.use(bodyParser.urlencoded({ extended: true }));
app.use(stylus.middleware(
{
src: __dirname + '/public',
compile: compile
}
));
app.use(express.static(__dirname + '/public'));
app.get('*', function(req, res) {
res.render('index');
});
var port = 3131;
app.listen(port);
console.log('Listening on port ' + port + '...');
и когда я пытаюсь войти http://localhost:3131/
сайт перестает отвечать в браузере
Этот сайт не может быть достигнут
Соединение было сброшено.
в nodemon это говорит о том, что:
Если я удалю morgan
все работает ок. Как я могу решить это?
2 ответа
Журналы ошибок показывают "Морган устарел формат по умолчанию: использовать комбинированный формат".
Это довольно просто, заменить
app.use(logger);
с
app.use(logger('combined'));
просто используйте
app.use(morgan("dev))
и убедитесь, что вы поместили свой импорт morgan вверху вашего импорта ... он выдаст ошибку, если вы поместите его ниже импорта или для атрибута требуемых зависимостей ..
нравится:
import express from "express";
import morgan from "morgan";
import postRoutes from "./routes/postRoutes.js";
если вы поместите свой импорт morgan под такими маршрутами,
import express from "express";
import postRoutes from "./routes/postRoutes.js";
import morgan from "morgan";
он выдаст вам сообщение «Ошибка: прослушайте EADDRINUSE: адрес уже используется» ...
надеюсь, что это поможет кому-нибудь ...