为啥nodejs中,中间件不生效的原因...

在学习的过程中,我按部就班的编写中间件的代码,如下:

// @ts-nocheck

// 引入express组件

const express = require('express')

// 创建express实例

const app = express()

// 创建全局中间件

// @ts-ignore

app.use((req, res, next) => {

  const time = new Date()

  req.nowTime = time.toLocaleString()

  console.log('调用中间件成功')

  next()

})

// 调用get方法实现路径

app.get('/', (req, res) => {

  res.send('创建成功...' + req.nowTime)

})

app.listen(8080, () => {

  console.log('启动web成功,地址为: http://127.0.0.1')

})

可以看出,启动成功,没有错误,但是生成之后是这样。。。

终端控制台也没有打印中间件输出函数,在网上找了之后,也没有,因为我开的是8080端口,所以在网址后面,对于80端口可以省略,我也没有在意。在我不断地试错之下,发现

app.listen(8080, () => {

  console.log('启动web成功,地址为: http://127.0.0.1:8080')

})

加上之后,中间件生效了,我查资料发现

对于80端口可以省略不?

是的,对于常见的 HTTP 端口如 80,在浏览器中可以省略不写。因为默认的 HTTP 端口是 80,所以当您在浏览器中访问 http://127.0.0.1 或 http://localhost 时,浏览器会自动将请求发送到 80 端口。

在您的 Express 应用程序中,如果您希望应用程序监听 80 端口,可以将 app.listen() 方法中的端口参数设置为 80,如下所示:

 

app.listen(80, () => { console.log('启动web成功,地址为: http://127.0.0.1') })

这样,您的 Express 应用程序将会在 80 端口上监听请求,而无需在浏览器中显式指定端口号。当您在浏览器中访问 http://127.0.0.1 时,请求将会被发送到 80 端口,您的 Express 应用程序会正确处理请求并返回响应。

请注意,在某些情况下,可能需要管理员权限才能监听低于 1024 的端口号,包括 80 端口。如果您在本地开发环境中遇到权限问题,可以尝试使用其他端口号,如 8080

这我就不理解了。为啥加入那个就生效了,也算给兄弟们提供一个方法,有大佬的话,口下留情,欢迎指正!

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值