关于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
对于你发的这段代码而言,每次只有启动服务的时候会执行一次
其中的 app.listen 也是在启动服务时候执行一次
但是 —— 其中的 app.use 里面注册的函数,其函数体的代码,每次请求的时候都会被执行。
你这个问题比较初级,不适合学到 express 时候才问,而是在博客项目一开始做的时候,没用任何框架的时候,就要把这个问题搞明白。
032024-04-25
相似问题