10

我正在通过教程学习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一切正常。我该如何解决?

4

2 回答 2

13

错误日志显示“摩根已弃用默认格式:使用组合格式”。

很简单,换一个

app.use(logger);

app.use(logger('combined'));

于 2016-04-04T08:44:44.700 回答
1

只需使用app.use(morgan("dev))并确保将导入的 morgan 放在导入的顶部。如果将其放在导入下方或所需的依赖项下方,则会出错。

像这样:

import express from "express";
import morgan from "morgan";

import postRoutes from "./routes/postRoutes.js";

如果你把你的摩根进口放在这样的路线下面,

import express from "express";

import postRoutes from "./routes/postRoutes.js";
import morgan from "morgan";

它会给你一个“错误:听 EADDRINUSE:地址已经在使用”......

希望这对任何人都有帮助...

于 2021-10-28T08:46:50.633 回答