【问题标题】:app.use(morgan("dev")) Not working, my middleware works when I write it in app.js and it does not work when I write it in server.jsapp.use(morgan("dev")) 不工作,当我在 app.js 中编写中间件时它可以工作,而当我在 server.js 中编写它时它不工作
【发布时间】:2021-07-06 04:58:27
【问题描述】:

这是我的 App.js 文件

const express = require("express");
const dotenv = require("dotenv");
const movieRouter = require("./routes/movieRoutes");
const userRouter = require("./routes/userRoutes");

const app = express();
dotenv.config({ path: "./config.env" });


app.use(express.json());
//Mounting routes
app.use("/kramank-api/v1/movies", movieRouter);
app.use("/kramank-api/v1/users", userRouter);
app.use(express.static("./"));
module.exports = app;

这是我的 Server.js 文件

const dotenv = require("dotenv");
const mongoose = require("mongoose");
const morgan = require("morgan");
const app = require("./app");

dotenv.config({ path: "./config.env" });

const DB = process.env.DATABASE.replace(
  "<password>",
  process.env.DATABASE_PASSWORD
);

mongoose
  .connect(DB, {
    useNewUrlParser: true,
    useCreateIndex: true,
    useFindAndModify: false,
    useUnifiedTopology: true,
  })
  .then(() => {
    console.log("Connection to Database succesful ????");
  });

const portNumber = 8080;
app.use(morgan("dev"));
app.listen(portNumber, "127.0.0.1", () => {
  // eslint-disable-next-line no-console
  console.log(`Server is now running on port  ${portNumber} ⚡`);
});

问题
当我在 app.js 文件中写 app.use(morgan("dev")) 时它可以工作,但是当我在 server.js 文件中写它时(我在上面粘贴我的代码的方式) 它不起作用,甚至没有给出任何错误。

【问题讨论】:

  • When I write app.use(morgan("dev")) in the app.js file it works, 你在 app.js 的哪一行写下这段代码?
  • 就在 app.js 中的 app.use(express.json()) 上方,但是当我在 app.js 中编写它但在 server.js 中使用它时它不起作用。

标签: javascript node.js express middleware morgan


【解决方案1】:

当你把它放在你的server.js 文件中时,它是最后一个路由/中间件声明。这意味着它永远不会被调用,除非没有其他路由接受请求。

您要为所有路由调用的中间件必须在您希望它之前运行的任何路由定义之前定义。这些事项的登记顺序。

在我看来,像这样的中间件属于您的 app.js 文件,因此您可以在创建 app 对象之后和任何其他路由之前首先注册此中间件。

【讨论】:

    猜你喜欢
    • 2015-12-14
    • 2019-12-01
    • 2021-01-22
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多