使用koa2搭建后端服务器

news2024/11/30 10:44:39

目录

第一步

第二步

第三步

第四步

第五步

流程说明

1.配置连接数据库

 2.添加Schema模型

3.配置路由接口


第一步

npm i -g koa-generator

第二步

koa2 server

第三步

cd server && npm install

第四步

将服务器拖进编译器运行

npm run dev

在浏览器输入地址可查看

http://localhost:3000/

第五步

流程说明

1.配置连接数据库

安装mongoose

npm install mongoose

(1)创建config文件夹,里面创建两个js文件

 (2)在index.js配置

module.exports = {
    URL:'mongodb://localhost:27017/server'
}

(3)在db.js中配置

const mongoose = require('mongoose');
const config = require('./index')
var db = mongoose.connection
mongoose.connect(config.URL,{
    //防止一些报错
    useNewUrlParser: true,
    useUnifiedTopology: true
})
db.on('error', err => {
    console.log(err);
});
db.on('open', () => {
    console.log('**********数据库已经连接**********');
});

(4)在app.js中配置

在// error handler下面
     onerror(app)

// 数据库连接成功提示
require('./config/db')

(6)此时可以在robo 3T中添加数据库表

 2.添加Schema模型

(1)在config同级目录,建立models文件夹

const mongoose = require('mongoose');

var userSchma = mongoose.Schema({
    userName : String,
    userPwd : String,
    mobile : Number,
    role : String
})
// 这里的user对应数据库中的表,数据库中表名是users ,规范
// userSchma对应要暴露出去的模型
module.exports = mongoose.model('user',userSchma)

3.配置路由接口

(1)在routes文件夹,建立js文件

const router = require('koa-router')()
//引入模型
const User = require('../models/userSchema.js')

// 找到数据库表名称
router.prefix('/users')

// 登录
router.post('/login', async (ctx, next)=>{
  const res = await User.find({})
  ctx.body = res
})


module.exports = router

(2)挂载到app.js

const router = require('koa-router')()

// 配置好路由在这里导入路由
const users = require('./routes/users')

// 开发规范,添加api接口
router.prefix('/api')

// routes  给每一个路由方行
router.use(users.routes(), users.allowedMethods())
app.use(router.routes(), router.allowedMethods())

(3)可以使用测试工具进行测试接口

http://localhost:3000/api/users/login

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【高危】用友 U8 Cloud、GRP-U8、A++V8.31存在多个高危漏洞

漏洞描述 用友 U8 Cloud、GRP-U8 是用友软件公司开发的提供企业资源管理解决方案的产品。 用友 U8 Cloud 存在3个高危漏洞,分别为LoggingConfigServlet反序列化漏洞、BeanShell远程代码执行漏洞、commons-beanutils 远程代码执行漏洞。 用友 GRP-U8 存在3个高危漏…

爆肝2个月,最新、最全前端框架前置课强势上线

今天是6月7日星期三 也是高考的第一天 黑马祝高考学生 考的全会!蒙的全对! 高考之后,大家都是成年人啦 今天,我们聊点 成年人 程序员的话题 2023年已经6月了 大家存到钱了吗 找到工作了吗? 薪资多少&#xff1f…

freertos 使用记录

目录 优先级 CS1237 现象 分析1 验证1 分析2 验证2 步进电机 现象 解决方法 堆栈 创建的任务不运行 现象 解决方法 本篇内容记录在使用 freertos过程遇到的问题与解决方法。 优先级 CS1237 现象 读到的数据总是有毛刺,如 总是出现不规则大值。 分…

nginx和tomcat负载均衡、静态分离

tomcat重要目录 bin 存放启动和关闭Tomcat脚本conf存放Tomcat不同的配置文件doc存放Tomcat文档lib存放Tomcat运行需要的库文件logs存放Tomcat执行时的log文件src存放Tomcat的源代码webappsTomcat的主要Web发布目录work存放jsp编译后产生的class文件 nginx负载均衡原理 nginx实…

Slack 工作效率管理平台的使用教程

Slack 将人员集中到统一的团队中,改变了组织的沟通方式。 Slack工具下载直通车 Slack下载直通车 Slack 侧栏 你可以从侧栏访问 Slack 对话。你会看到你已经加入的频道列表、你的私信、特定对话的通知以及编写新消息的选项。 撰写 你可以使用撰写按钮来编辑和发送…

网络安全面试题大全(整理版)300+面试题附答案详解,最全面详细

前言 随着国家政策的扶持,网络安全行业也越来越为大众所熟知,想要进入到网络安全行业的人也越来越多。 为了拿到心仪的Offer之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年&…

慢 SQL 优化之索引的作用是什么? | 京东云技术团队

前言 本文针对 MySQL 数据库的 InnoDB 存储引擎,介绍其中索引的实现以及索引在慢 SQL 优化中的作用。 本文主要讨论不同场景下索引生效与失效的原因。 慢SQL与索引的关系 慢SQL优化原则 数据库也是应用,MySQL 作为一种磁盘数据库,属于典…

有哪些文档和知识管理工具推荐? - 易智编译EaseEditing

以下是一些常用的文档和知识管理工具推荐: Evernote: Evernote是一款强大的笔记和知识管理工具,可以帮助您保存和组织文档、笔记、图片和网页剪辑,并支持跨设备同步和搜索功能。 Microsoft OneNote: OneNote是微软的…

图论中的算法

图论的概念:图论是数学的一个分支,它是以图为研究对象,图论中的图是由若干个给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些实体之间的某种特定的关系,用点代表实体,用连接两点之间的线表示…

2021年国赛高教杯数学建模A题FAST主动反射面的形状调节解题全过程文档及程序

2021年国赛高教杯数学建模 A题 FAST主动反射面的形状调节 原题再现 中国天眼——500 米口径球面射电望远镜(Five-hundred-meter Aperture Spherical radio Telescope,简称 FAST),是我国具有自主知识产权的目前世界上单口径最大、…

Java 进阶 -- 集合(三)

4、实现 实现是用于存储集合的数据对象,它实现了接口部分中描述的接口。本课描述了以下类型的实现: 通用实现是最常用的实现,是为日常使用而设计的。它们在标题为“通用实现”的表格中进行了总结。特殊目的实现是为在特殊情况下使用而设计的&#xff0…

IP归属地API分享

各大网站和app都更新了用户IP归属地功能,但是如何获取IP归属地信息科难为了一些技术人员了,下面给大家分享最好用的IP归属地API,能够大大的提升了效率。 IP归属地API(IP66_ip归属地在线查询_免费ip查询_ip精准定位平台&#xff09…

关于使用 AzureKinect 不识别的问题解决

AzureKinect如果不识别可能是因为 :(请一个一个排查) 1. 数据线和Kinect电源线没插,或者电源跟数据线插反了 2. SDK 没安装,一共需要安装两个SDK,安装教程 Unity AzureKinect 初识(一) 安装_会思考的猴子的博客-CSDN博客 3.数据线需要插 USB3.0或者3.1,集线器最好是…

软件测试Pytest实现接口自动化应该如何在用例执行后打印日志到日志目录生成日志文件?

Pytest可以使用内置的logging模块来实现接口自动化测试用例执行后打印日志到日志目录以生成日志文件。以下是实现步骤: 如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站百万播放全网第一的自动化测试教程,同…

iPhone手机如何将短信同步到安卓手机上

1.下载爱思助手 2.备份全量数据 3.用爱思助手查看备份数据;注:一定要用专业模式查看 4.代开专业模式,就能查看短信模块得数据,并且到导出成 sms.db文件 5. 用在线 db文件转成csv文件格式;地址:DB轉CSV 線上 - db轉成…

3.2 分析特征间的关系

3.2 分析特征间的关系 3.2.1 绘制散点图 scatter()例子1:绘制2000-2017年各季度国民生产总值散点图例子2:使用不同颜色不同形状的点,绘制2000-2017年各产业各季度国民生产总值散点图 3.2.2 绘制折线图 plot()例子1:绘制2000-2017年…

接口自动化测试框架开发(pytest+allure+aiohttp+ 用例自动生成)

近期准备优先做接口测试的覆盖,为此需要开发一个测试框架,经过思考,这次依然想做点儿不一样的东西。 接口测试是比较讲究效率的,测试人员会希望很快能得到结果反馈,然而接口的数量一般都很多,而且会越来越…

Matlab论文插图绘制模板第100期—紧凑排列多子图(Tiledlayout)

不知不觉,《Matlab论文插图绘制模板》系列来到了第100期。 在此之前,其实我也没想到会有这么多种数据可视化表达方式,论文里不是折线图就是柱状图,单调的很。 假如研究生那会要是能遇到现在的自己(分享的内容&#x…

因果一致性

上一篇写到了一致性模型,而因果一致性模型比较复杂,故单独写一篇文章来记录 强一致性模型会在网络分区时变的不可用,而最终一致性模型放弃了safety,但同时也对系统可用性和性能产生明显的损害。上层要做些操作。于是有了一个折中…

高考作文AI大比拼「GPT-4 vs 文心一言 vs 通义千问」

2023 年 6 月 7 日上午,全国高考语文科目已经考试结束,第一时间拿到了全国甲卷的高考作文题目: 阅读下面的资料,根据需要写作 人们因技术发展得更好地掌控时间,但也有人因此成为了时间的仆人。 这句话引出了你怎样的联…