Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express 为什么Morgan Logger服务器中间件没有';你不能单独归档吗?_Express_Logging_Next.js_Middleware_Morgan - Fatal编程技术网

Express 为什么Morgan Logger服务器中间件没有';你不能单独归档吗?

Express 为什么Morgan Logger服务器中间件没有';你不能单独归档吗?,express,logging,next.js,middleware,morgan,Express,Logging,Next.js,Middleware,Morgan,我在我的nextjs应用程序中添加了一个新的中间件来进行日志记录,因此我在我的server.js中有以下代码: // create a write stream (in append mode) const accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' }) // setup the logger server.use(morgan('combined', { st

我在我的
nextjs
应用程序中添加了一个新的中间件来进行日志记录,因此我在我的server.js中有以下代码:

// create a write stream (in append mode)
const accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' })

// setup the logger
server.use(morgan('combined', { stream: accessLogStream }))
而且它正在毫无问题地工作

但是我想在中间件目录中的单独的文件中包含逻辑,因此我有:

middleware/logger/index.js

import morgan from "morgan";
import fs from 'fs';
import path from 'path';


export default (req, res, next) => {
  var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' })

  return morgan('combined', { stream: accessLogStream });
};
在我的server.js中,我将有:(导入和初始化内容后)


其他的中间软件工作正常,但这个坏了。你知道为什么吗?

我像这样更改了中间件,现在它工作正常:)

  server.use(logger);
  server.use(othermiddlewareone);
  server.use(othermiddlewaretwo);
import type { Request, Response, Next } from './types';
import morgan from "morgan";
import fs from 'fs';
import path from 'path';

const accessLogStream = fs.createWriteStream(path.join(__dirname, 'server.log'), { flags: 'a' })
const logger = morgan('combined', { stream: accessLogStream })

export default async (req: Request, res: Response, next: Next) => {
  logger(req, res, function (err) {
    return next();
  })
};