简单使用koa2搭建本地服务器

1、初始化项目

npm init  
  • 新建一个空文件夹,作为项目的根目录
  • 在这个根目录下 npm init
  • 生成package.json

2、安装koa依赖

npm i koa

3、安装koa-router(根据需求看是否需要使用koa-router)

npm i koa-router

4、搭建简单的本地服务(全局app.js简单书写)

const koa = require('koa') 

const router=new Router()

const app=new koa() 

app.use(router.routes())

router.get('/',(ctx,next)=>{
    ctx.body='hello world'
})
//匹配出现路由出现的东西
app.listen(3000,()=>{
     console.log(`server is started at port 3000`)
})
//监听一个3000的端口

5、连接数据库

  • 在App.js的同级目录下新建config.js文件
  • config.js的书写
 const CONF = {
    port: '5757',
    mysql: {
        host: 'localhost',
        port: 3306,
        user: 'root',
        db: 'nodemysql',
        pass: '123456',
        char: 'utf8mb4'
    }
}

module.exports = CONF
  • 在App.js的同级目录下新建mysql.js文件
  • mysql.js的书写
// 获取基础配置
const configs = require('./config') //导入config模块
//Knex.js是为MySQLd等等,SQL查询构建器,其设计灵活,便于携带并且使用起来非常有趣。
var knex = require('knex') ({//使用knex,连接mysql数据库
    client: 'mysql',
    connection: {
        host: configs.mysql.host,
        port: configs.mysql.port,
        user: configs.mysql.user,
        password: configs.mysql.pass,
        database: configs.mysql.db,
    }
})

//将基础配置和sdk.config合并 导出初始化完成的sdk sdk(软件开发工具包)
module.exports={mysql:knex}

6、封装组件工作

6.1 - 封装Router组件

  • 为了简单明了,更加组件化,应该把路由单独的拿出来
  • 在App.js的同级目录下新建routers文件夹,在此routers创建相关的router
const router = require('koa-router')({
    prefix:"/lm" //加上路由前缀
})
const controllers =require('../controllers/index')//能读取controllers下所有文件的绝对路径

// //加载路由模块,koa中没有,若用到要重新下载
// const router=new Router() //new Router实例

router.get('/index/index',controllers.home.index)
    //从数据库中获取数据返回给前端
    // (ctx,next)=>{
    //     ctx.body='hello world'
    //这个箭头函数是往前端输出东西的,所以弄成一个控制器

module.exports=router //模块导出

6.2 - 封装Controllers控制组件

  • Controllers是让后台输出数据到前端上,使前端可以获取到数据,然后由于页面有很多页面,则需要分开写
  • 例如创建Home文件夹下面的index.js,连接数据库,抛出要给前端的数据banner
 - const {mysql}=require('../../mysql.js')
module.exports=async(ctx)=>{
    
    const banner = await mysql('某个xxx表').where({
        //条件
    }).select()
    //在xxx表中查询是否存在数据
    ctx.body={
        'banner':banner //往前端抛出banner给前端,使前端能拿到轮播图数据
    }
}
  • 为了使在路由中不用一个一个文件引入则需封装成一个获取各种文件绝对路径的方法
 /获取各种文件绝对路径的方法
const _ =require('lodash')//lodash js中一个库,在原生的js的基础上做了一个封装,实现模块化,高性能的js工具库
const fs=require('fs')
const path=require('path')

// 映射 d 文件夹下的文件为模块

const mapDir = d => {
    const tree = {
    }

    // 获取当前文件夹下的所有文件夹和文件,分成两组,文件夹一组,文件一组
    const [dirs, files] = _(fs.readdirSync(d)).partition(p => fs.statSync(path.join(d, p)).isDirectory())
    // 映射文件夹
    dirs.forEach(dir => {
        tree[dir] = mapDir(path.join(d, dir))
    });
    // 映射文件
    files.forEach(file => {
        // 获取文件后缀名字
        if (path.extname(file) === '.js') {
            tree[path.basename(file, '.js')] = require(path.join(d, file))
        }
    })
    return tree
}

// 默认导出当前文件夹下的映射
module.exports = mapDir(path.join(__dirname)) //path.join(__dirname)是绝对路径
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,下面是手把手带你搭建koa2 mysql项目的教程。 1. 安装Node.js和npm 首先需要安装Node.js和npm,可以在官网下载安装包进行安装。 2. 初始化项目 在命令行中进入项目目录,运行以下命令初始化项目: ``` npm init ``` 根据提示填写项目信息,完成后会生成package.json文件。 3. 安装koa2和koa-router 运行以下命令安装koa2和koa-router: ``` npm install koa koa-router --save ``` 4. 安装mysql模块 运行以下命令安装mysql模块: ``` npm install mysql --save ``` 5. 创建数据库 在mysql中创建一个名为test的数据库,并创建一个名为users的表,包含id、name、age三个字段。 6. 创建连接池 在项目中创建一个db.js文件,用于创建mysql连接池: ```javascript const mysql = require('mysql'); const pool = mysql.createPool({ host: 'localhost', user: 'root', password: '123456', database: 'test' }); module.exports = pool; ``` 7. 创建路由 在项目中创建一个router.js文件,用于创建koa-router路由: ```javascript const Router = require('koa-router'); const pool = require('./db'); const router = new Router(); router.get('/users', async (ctx) => { const conn = await pool.getConnection(); const [rows] = await conn.query('SELECT * FROM users'); conn.release(); ctx.body = rows; }); module.exports = router; ``` 8. 创建服务器 在项目中创建一个app.js文件,用于创建koa2服务器并引入路由: ```javascript const Koa = require('koa'); const router = require('./router'); const app = new Koa(); app.use(router.routes()); app.listen(3000, () => { console.log('Server is running at http://localhost:3000'); }); ``` 9. 运行项目 在命令行中进入项目目录,运行以下命令启动服务器: ``` node app.js ``` 在浏览器中访问http://localhost:3000/users,可以看到数据库中的用户数据。 至此,一个简单koa2 mysql项目就搭建完成了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Smile_zxx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值