koa+mysql创建后端服务

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: koa-router是路由文件,koa-cors是后端跨域组价,koa-bodyparse是post传值接受的中间键

一、初始化项目


1.使用makdir 文件夹名创建一个文件夹


例如


makdir koa_start
cd koa_start
然后执行 npm init


2.安装 koa、 koa-router、 koa-cors、 koa-bodyparser,mysql


npm install koa,koa-router, koa-cors,koa-bodyparse,mysql --save


koa-router是路由文件,koa-cors是后端跨域组价,koa-bodyparse是post传值接受的中间键


2.新建app.js


// server.js文件
let Koa = require("koa");
let Router = require("koa-router");
let cors = require("koa-cors");
const bodyParser = require("koa-bodyparser");
let fs = require("fs");
const app = new Koa();
app.use(bodyParser());
const router = new Router();
const db = require("./mysqlDB");
router.post("/user/login", async (ctx,next) => {
  let ctx_query = ctx.request.body;
  let sql = `select * from users where user='${ctx_query.username}' and passwd='${ctx_query.password}'`;
  const result = await db.query(sql); //查询数据库
    if (result.status == 200) {
      if(result.results.length>0){
         ctx.body = {
           code: 200,
           token: "7987asdjabsdqweqwesdqwewqe",
         };
      }else{
          ctx.body = {
            code: 400,
            message: "用户名和密码错误,请重新输入",
          };
      }
    } else if (result.status == 400) {
       ctx.body = {
         code: 401,
         message: "连接错误,请重新再试",
       };
    }else{
      ctx.body = {
        code: 500,
        message: "服务器连接失败",
      };
    }
});
app.use(cors());
// 将koa和两个中间件连起来
app.use(router.routes()).use(router.allowedMethods());
// 监听3001端口
app.listen(3001,()=>{
    console.log('server is alerday start')
});


app.use(bodyParser());是为了在post请求中转化得到请求参数的 所以post得到前端请求的参数为 let ctx_query = ctx.request.body; get得到请求的参数为let ctx_query = ctx.query;


3.新建dbconfig.js数据库的配置


dbconfig.js
module.exports = {
  config: {
    db_host: "localhost", --主机名
    db_port: "3306",      --主机端口
    db_name: "test",      --数据库名
    db_user: "root",      --数据库登录名
    db_passwd: "root"     --数据库连接密码
  },
};


4.新建mysqlDB数据库连接文件


mysqlDB.js
const mysqlDb = require("mysql");
const config = require("./dbconfig");
let options = {
  host: config.config.db_host,
  user: config.config.db_user,
  password: config.config.db_passwd,
  database: config.config.db_name,
  multipleStatements: true,
};
 var pool = mysqlDb.createPool(options);
 exports.query = function (sql, values) {
    return new Promise((resolve, reject) => {
      pool.getConnection(function (err, connection) {
        if (err) {
          reject(err)
          //console.log(err, "数据库连接失败");
          resolve({
            status: 500,
          });
        } else {
          //console.log("数据库连接成功");
          connection.query(sql, values, (err, results) => {
            if (err) {
              reject(err);
              resolve({
                status: 400
              });
            } else {
              connection.release();
              resolve({
                status: 200,
                results,
              });
            }
            //connection.release() // 释放连接池
          });
        }
      })
    })
  }


5、启动项目


package.json里面配置


{
  "name": "koa-demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node ./app.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "koa": "^2.13.1",
    "koa-bodyparser": "^4.3.0",
    "koa-cors": "0.0.16",
    "koa-router": "^10.0.0",
    "mysql": "^2.18.1",
    "save": "^2.4.0"
  }
}


npm run start启动项目


然后在浏览器是上监听3001端口,服务器就启动了

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
10月前
|
弹性计算 监控 负载均衡
|
8月前
|
SQL 关系型数据库 MySQL
网安入门之MySQL后端基础
《网安入门之MySQL后端基础》简介: 本文介绍了数据库及MySQL的基础知识,涵盖数据库的概念、结构与操作。数据库是组织化存储数据的集合,通过表、列、行等结构实现高效管理。MySQL作为开源的关系型数据库管理系统,广泛应用于Web开发。文中详细讲解了MySQL的基本操作,如增(INSERT)、删(DELETE)、改(UPDATE)、查(SELECT)等语句的使用方法,并介绍了数据库事务的ACID特性。此外,还探讨了SQL注入攻击的风险及防范措施,强调了预处理语句的重要性。最后,简述了PHP中mysqli扩展的使用方法,包括连接数据库、执行查询和关闭连接等步骤。
|
4月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
298 41
|
4月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
391 17
|
4月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
116 18
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
339 11
|
4月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
132 10
|
5月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
458 12
|
6月前
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
147 18
|
7月前
|
数据管理 关系型数据库 MySQL
数据管理服务DMS支持MySQL数据库的无锁结构变更
本文介绍了使用Sysbench准备2000万数据并进行全表字段更新的操作。通过DMS的无锁变更功能,可在不锁定表的情况下完成结构修改,避免了传统方法中可能产生的锁等待问题。具体步骤包括:准备数据、提交审批、执行变更及检查表结构,确保变更过程高效且不影响业务运行。
383 2

推荐镜像

更多