现在前端全栈里面有一种技术栈比较火

前端使用 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的更多相关文章

  1. 实战:一、使用mongo做一个注册的小demo

    思路:1.使用mongoose 进行 数据库的链接 2.使用Schema来进行传输字段的定义 3.安装koa-router进行数据处理4.安装koa-bodyparser 进行post数据交互5.解决 ...

  2. 把 nodejs koa2 制作的后台接口 部署到 腾讯云服务器

    我 使用 nodejs koa2框架 制作后端接口, 现在将nodejs koa2 部署到服务器 koa2项目 实现 接口 可以看我的 这篇文章: 简单实现 nodejs koa2 mysql 增删改 ...

  3. 记录一次用宝塔部署微信小程序Node.js后端接口代码的详细过程

    一直忙着写毕设,上一次写博客还是元旦,大半年过去了.... 后面会不断分享各种新项目的源码与技术.欢迎关注一起学习哈! 记录一次部署微信小程序Node.js后端接口代码的详细过程,使用宝塔来部署. 我 ...

  4. [Unity3D]做个小Demo学习Input.touches

    [Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...

  5. jsoup爬虫简书首页数据做个小Demo

    代码地址如下:http://www.demodashi.com/demo/11643.html 昨天LZ去面试,遇到一个大牛,被血虐一番,发现自己基础还是很薄弱,对java一些原理掌握的还是不够稳固, ...

  6. uni-app开发的应用(小程序,app,web等),使用Node+Koa2开发的后端程序接收上传文件的方法

    uni-app使用使用Node+Koa2开发的后端程序接收上传的文件 通过gitbook浏览此随笔 通过其它客户端上传(h5,小程序等),接收方法一致 使用koa接收时,我们需安装一个中间件koa-b ...

  7. dubbo泛化调用 小demo

    前两天刚好有个同事来问是否用过 dubbo泛化 调用,不需要通过指定配置.第一次听到的时候,还是有点懵,但觉得有意思,可以学点东西. 立马百度了,找了demo,这篇比较容易上手(http://www. ...

  8. Nancy之基于Nancy.Owin的小Demo

    前面做了基于Nancy.Hosting.Aspnet和Nancy.Hosting.Self的小Demo 今天我们来做个基于Nancy.Owin的小Demo 开始之前我们来说说什么是Owin和Katan ...

  9. Win10 FaceAPI小demo开发问题汇总

    Win10 FaceAPI小demo开发问题汇总 最近使用微软牛津计划做一个小demo,使用FaceAPI做一个小应用,实现刷脸的功能.开发的过程中用到几个问题,具体如下: Stream 与IRand ...

随机推荐

  1. JSP初学者3

    reponse代表服务器对客户端的响应.大部分时候,程序无须使用response来响应客户端请求,因为有更简单的响应对象——out,它代表页面输出流. 但out无法响应生成非字符内容(out是JspW ...

  2. android drag

    1.Android:Drag and Drop的应用 2.Android 用户界面---拖放(Drag and Drop)(三) 3.Android 用户界面---拖放(Drag and Drop)( ...

  3. selenium(2.4.0)中不能导出web drive 代码

    最近在学习selenium.要做web自动化测试.咱只会C# .就想了,这个测试用例要是能用C# 控制,保存起来,就可以以后自动运行了,不用每次点击运行了. 看了看它的文档,就开始试验了,录脚本折腾了 ...

  4. SqlServer存储过程示例

    /* 步骤1 删除本地及海关单证待分派表.报关单表中的数据 delete from W_DOCUMENTS; delete from W_DOCUMENTS_TEST; delete from W_D ...

  5. MySQL代码备份

    package com.dus.utils; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io. ...

  6. Asterisk 对wav格式的支持

    经过测试wav格式文件仅支持PCM 8000kHz 16bit 单声道,非常蛋疼的一个原因,排查了好久! 关于C#支持的一些格式(Mono 单声道 .Stereo 立体声道) // Standard ...

  7. Appium的DesiredCapabilities参数设置

    Appium的DesiredCapabilities参数设置 DesiredCapabilities 负责启动服务端时的参数设置.实际使用时根据自己的需要,可自行修改一些参数. 比如,应用程序在查找某 ...

  8. VS LNK2019 解决办法之一

    LNK2019: unresolved external symbol _main referenced in function __main 有人说这是因为静态动态引用引起的,但是!这些都没有解决我 ...

  9. Scrum第一次冲刺

    1.项目描述 为了长大学子的便捷,避免遭遇官网爆炸而无法查询成绩,课表等相关个人信息.我们决定开发长大Tips(分担官网的压力). 2.基本业务 用户可以通过学号加密码登入长大Tips 用户可以在在用 ...

  10. Jmeter入门14 后置处理器JSON Extractor 提取json的多个值

    json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配 ...