前端koa搭建服务器,不用后端接口也能跑啦(妈妈再也不用担心我不能自己返回数据了)——part1_koa安装dotenv

安装koa依赖

npm i koa --save或者npm i koa -S
可将信息加入到package.json文件中的dependencies中(—save也就是生产阶段的依赖,也就是项目运行时的依赖,就是程序上线后仍然需要依赖)

安装koa-router 路由管理依赖

npm install koa-router --save
Koa-router 是 koa 的一个路由中间件,它可以将请求的URL和方法(如:GET 、 POST 、 PUT 、 DELETE 等) 匹配到对应的响应程序或页面。

安装dotenv 环境变量依赖

npm install dotenv --save
Dotenv 是一个零依赖的模块,它能将环境变量中的变量从 .env 文件加载到 process.env 中,将环境相关的配置独立于代码之外。

安装nodemon 热启动依赖

npm install nodemon --save-dev或者npm i nodemon -D
可将信息加入到package.json文件中的devDependencies中(-D也就是开发阶段的依赖,就是我们在开发过程中需要的依赖,只在开发阶段起作用)

第三步:代码调用,启动服务

main.js文件中的内容
// main.js
const app = require('./app/index.js')
const config = require('./app/config.js')

app.listen(config.APP\_PORT, () => {
  console.log(`服务器在${config.APP\_PORT}端口启动成功了~`)
})


在这里插入图片描述

app/index.js中的内容
// 入口文件
// app/index.js
const Koa = require("koa")

const app = new Koa()

const useRoutes = require('../router') // 引入router下的index.js文件(不写出来其实等价于../router/index.js)

useRoutes(app) // 向这个路由加载文件传入app

module.exports = app  //暴露出去app这个变量,方便其他文件调用


在这里插入图片描述

app/config.js中的内容

处理环境变量,把变量写入到环境中

// config.js
const dotenv = require("dotenv")   //环境变量依赖 参考:https://juejin.cn/post/6844904198929121288?from=search-suggest

dotenv.config()

module.exports = {
  APP\_PORT
} = process.env


在这里插入图片描述

.env中的内容
APP\_PORT=8000 

在这里插入图片描述

router文件夹中的user.router.js文件
const Router = require("koa-router") // 引入依赖

const userRouter = new Router({ prefix: "/user" }) // 设置接口前缀

const { create } = require('../controller/user.controller') // 引入中间件

userRouter.get('/', create) // 设置接口路径,以及中间件

module.exports = userRouter // 导出


在这里插入图片描述

controller文件夹中的user.controller.js文件

这个中间件是与router文件夹中的user.router.js文件

class UserController { // 创建类
  async create (ctx, next) { // 中间件
    console.log("请求成功")
    ctx.body = "请求成功,用户test" // 请求响应
  }
}

module.exports = new UserController()



在这里插入图片描述

router文件夹中的index.js文件

这个文件里的代码专门用来加载路由,将会用文件遍历的方法来加载每一个路由,这样就不用每增加一个接口都要再自己手动去加载路由了。接下来只要在入口文件app/index.js中引入这个文件加载路由即可

const fs = require('fs')

const useRoutes = (app) => {
  fs.readdirSync(__dirname).forEach(file => {
    if (file === 'index.js') return // index.js文件不需要
    const router = require(`./${file}`)
    app.use(router.routes())
    app.use(router.allowedMethods())
  })
}

module.exports = useRoutes



在这里插入图片描述


总结

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。

还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

前端面试题汇总

JavaScript

前端资料汇总

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值