关于app.js的问题

来源:10-3 介绍express的入口代码

wykun

2019-04-23

const Koa = require('koa')
const app = new Koa()
const { connect, initSchemas } = require('./database/init')
const mongoose = require('mongoose')
const bodyParser = require('koa-bodyparser')
const cors = require('koa2-cors')
const Router = require('koa-router')

app.use(bodyParser())
app.use(cors())
let user = require('./service/user')

// 装载所有子路由
let router = new Router()
router.use('/user', user.routes())

let num = 1
console.log('index.js执行文件执行' + num++ + '次')

// 加载路由中间件
app.use(router.routes())
app.use(router.allowedMethods())

;(async () => {
  await connect()
  initSchemas()
})()

app.listen(3000, () => {
  console.log('server is starting on port 3000')
})

老师.我想问的是每次发请求的时候我们是都会走一遍这个文件吗?我也自己写了标记.发现我在发请求的时候,这个文件是只有你启动服务器的时候只执行一次,那么我纳闷为什么Koa还能每次都能获取到你的请求呢?它不得走那段router的代码吗?那么既然后走router的代码了…那么listen是不是也得走一遍呢…有点懵逼…

写回答

1回答

双越

2019-04-23

  1. 对于你发的这段代码而言,每次只有启动服务的时候会执行一次

  2. 其中的 app.listen 也是在启动服务时候执行一次

  3. 但是 —— 其中的 app.use 里面注册的函数,其函数体的代码,每次请求的时候都会被执行。

你这个问题比较初级,不适合学到 express 时候才问,而是在博客项目一开始做的时候,没用任何框架的时候,就要把这个问题搞明白。

0
3
秋得法
回复
wykun
帮到我了谢谢
2024-04-25
共3条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4050 学习 · 2006 问题

查看课程