koa2 mongdb 做后端接口的小demo
现在前端全栈里面有一种技术栈比较火
前端使用 vue 或者react 后端使用 koa2 mysql数据库 或者mongdb做数据储存
但是基本这样的全栈教程 都要收费 收费就收费吧 但是 有没有遇到非常好的教程
于是 准备硬着头皮看别人项目的源码 自己摸索 一步一步完成 koa + mongdb的后端学习
下面就写一个很简单的koa + mongdb 的数据库写入
user.js //这个页面写数据库连接
var mongoose = require('mongoose')
var Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/m_data') //m_data是我的数据库名字 需要自己创建
mongoose.connection.once('open',()=> {
console.log("[mongoose]mongdb is start"); //监听启动
})
var userSchema = new Schema({ //建表
username: {
type: String
},
password: {
type: String
},
call: {
type: Number
},
email: {
type: String
}
})
var user = mongoose.model('User',userSchema); //返回另一个Model实例
module.exports = user //导出
data.js
let koa = require('koa')
var mongoose = require('mongoose')
let User = require('./user') //导入上一个页面的数据库模块
var bodyParser = require('koa-bodyparser'); //用于接受post请求的中间件
let app = new koa();
app.use(bodyParser());
app.use(async (ctx) => {
if (ctx.url === '/' && ctx.method == 'GET') {
//显示表单页面
let html = `
<h1>this is POST</h1>
<form action="http://localhost/" method="POST">
<p>姓名: <input type="text" name="name"></p>
<p>年龄: <input type="text" name="age"></p>
<p>电话: <input type="text" name="call"></p>
<p>邮箱: <input type="text" name="email"></p>
<input type="submit" value="提交">
</form>
`
ctx.body = html
} else if (ctx.url === '/' && ctx.method == 'POST') {
let postData = ctx.request.body;
ctx.body = postData;
console.log(postData);
User.create({
username: postData.name,
password: postData.age,
call: postData.call,
email: postData.email
},(err) => {
if(err) return
console.log('插入成功');
})
} else {
ctx.body = '<h1>404</h1>'
let data = '';
}
})
app.listen(80,()=>{
console.log('[koa] is start');
})
对于有node基础的人来说 这应该不难 稍微都能看懂 ,就是很简单的数据库写入
假如你刚刚学习koa mongdb node也不太熟练
可以看我的github上面
https://github.com/boold/Small-code/tree/master/Small demo koa mongdb
koa2 mongdb 做后端接口的小demo的更多相关文章
- 实战:一、使用mongo做一个注册的小demo
思路:1.使用mongoose 进行 数据库的链接 2.使用Schema来进行传输字段的定义 3.安装koa-router进行数据处理4.安装koa-bodyparser 进行post数据交互5.解决 ...
- 把 nodejs koa2 制作的后台接口 部署到 腾讯云服务器
我 使用 nodejs koa2框架 制作后端接口, 现在将nodejs koa2 部署到服务器 koa2项目 实现 接口 可以看我的 这篇文章: 简单实现 nodejs koa2 mysql 增删改 ...
- 记录一次用宝塔部署微信小程序Node.js后端接口代码的详细过程
一直忙着写毕设,上一次写博客还是元旦,大半年过去了.... 后面会不断分享各种新项目的源码与技术.欢迎关注一起学习哈! 记录一次部署微信小程序Node.js后端接口代码的详细过程,使用宝塔来部署. 我 ...
- [Unity3D]做个小Demo学习Input.touches
[Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...
- jsoup爬虫简书首页数据做个小Demo
代码地址如下:http://www.demodashi.com/demo/11643.html 昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固, ...
- uni-app开发的应用(小程序,app,web等),使用Node+Koa2开发的后端程序接收上传文件的方法
uni-app使用使用Node+Koa2开发的后端程序接收上传的文件 通过gitbook浏览此随笔 通过其它客户端上传(h5,小程序等),接收方法一致 使用koa接收时,我们需安装一个中间件koa-b ...
- dubbo泛化调用 小demo
前两天刚好有个同事来问是否用过 dubbo泛化 调用,不需要通过指定配置.第一次听到的时候,还是有点懵,但觉得有意思,可以学点东西. 立马百度了,找了demo,这篇比较容易上手(http://www. ...
- Nancy之基于Nancy.Owin的小Demo
前面做了基于Nancy.Hosting.Aspnet和Nancy.Hosting.Self的小Demo 今天我们来做个基于Nancy.Owin的小Demo 开始之前我们来说说什么是Owin和Katan ...
- Win10 FaceAPI小demo开发问题汇总
Win10 FaceAPI小demo开发问题汇总 最近使用微软牛津计划做一个小demo,使用FaceAPI做一个小应用,实现刷脸的功能.开发的过程中用到几个问题,具体如下: Stream 与IRand ...
随机推荐
- RBG灯颜色渐变(颜色要尽可能多)程序分析
相信很多调过RBG灯的朋友都是通过分别改变R.B.G的占空比来改变颜色的,但是不是发现了一个问题,那就是不管怎样调都很难实现几十种颜色的变化,一般只有是7种颜色的渐变.下面给朋友们分享一个可以实现几十 ...
- matlab练习程序(单源最短路径Bellman-Ford)
该算法可以用来解决一般(边的权值为负)的单源最短路径问题,而dijkstra只能解决权值非负的情况. 此算法使用松弛技术,对每一个顶点,逐步减少源到该顶点的路径的估计值,直到达到最短的路径. 算法运算 ...
- asyncio标准库1 Hello World
利用asyncio的event loop,编写和调度协程 coroutine [,kəuru:'ti:n] n. 协程 Simple coroutine(调用1个协程) import asyncio ...
- C# 生成随机数重复问题
今天做测试,在一个循环里面给实体属性赋随机值,然后生成一个实体集合,突然发现生成的实体集合中的所有实体相应属性值都是一样的,调试时却又发现值并不是重复的,度娘以后发现了问题——Random类是一个产生 ...
- HCNA修改OSPF基准带宽
1.拓扑图 2.R1配置ip开启OSPF The device is running! <Huawei>sysEnter system view, return user view wit ...
- FUNCTION_POWER
1.power function Definition:The Oracle PL/SQL, the POWER function is a built in function which takes ...
- 用python管理Cisco路由器
目前DevOps是整个运维发展的方向,Network的运维也一样.使用程序控制底层的路由器是最基本的要求之一. 本文简单解释如何用Python控制路由器,对网络设备进行配置. Python和网络设备连 ...
- python中的 if __name__ == “__main__”: 有什么用
https://stackoverflow.com/questions/419163/what-does-if-name-main-do# 问题: What does if name == " ...
- CRM中间件里的CSA队列有什么用
我们有时候会在中间件的事务码SMQ2即Inbound队列查看器里观察到以CSA开头的队列: 这些队列的作用是什么呢?在SAP community上已经有很多朋友提出了相同的问题,也有专家在下列两个连接 ...
- 细说new与malloc的10点区别(转载)
原地址https://www.cnblogs.com/QG-whz/p/5140930.html#_label1_0 new与malloc的10点区别 1. 申请的内存所在位置 new操作符从自由存储 ...