NodeJS 创建简单节点服务器时的多个服务器调用

e3bfsja2  于 2022-12-03  发布在  Node.js
关注(0)|答案(2)|浏览(192)

问题:访问http://localhost:3000/时看到3组控制台日志
预期输出:我应该只看到两个console.logs::第一中间件第二中间件

我有以下两个文件:
服务器. js::

const http = require('http');
const app = require('./backend/app');

const port = process.env.PORT || 3000;

app.set('port',port);
const server = http.createServer(app);

server.listen(port);

和app.js::

const express = require('express')

// big chain of middle ware
const app = express();

app.use( (req,res,next)=>{
    console.log('First middleware');
    next();
});

app.use( (req,res,next)=>{
    console.log('Second middleware');
    res.send('Hello from express');
});

// register what you want to export
module.exports = app;

由于某种神秘原因,当我访问http://localhost:3000/时,我在服务器控制台中看到三组控制台日志:

First middleware
Second middleware
First middleware
Second middleware
First middleware
Second middleware

我的页面没有重新加载3次lol
当我访问本地host 3000时,我可以看到输出“Hello from express”,但我不确定为什么这段代码会运行三次
我试着寻找其他类似的问题,但我没有看到任何类似的内容

jw5wzhpr

jw5wzhpr1#

这可能是由于在服务器上加载了其他文件,如样式表或javascript文件。请记住,所有请求,无论文件类型或路径如何,都将通过中间件进行路由。您也可以尝试使用<Request>.originalUrl字符串属性记录请求路径。

eimct9ow

eimct9ow2#

我认为这与谷歌Chrome扩展有关。当我在Private.com上打开浏览器时,它工作得很完美。

相关问题