//api.js
const Koa = require('koa');
const router = require('koa-router')(); //路由
const bodyParser = require('koa-bodyparser'); //解析原始request请求
const fs = require('fs'); //文件读取
const cors = require('koa2-cors'); //设置cors头
const app = new Koa; /**
* 数据库连接
*/
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/admin', {'useNewUrlParser': true});
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log('数据库连接成功') /**
* Schema 用来定义存储在document 中的属性,并且赋予他们校验的规则,和默认值
*/
var kittySchema = new mongoose.Schema({
name: String
}); kittySchema.methods.speak = function () {
var greeting = this.name
? "Meow name is " + this.name
: "I don't have a name";
console.log(greeting);
} /**
* 定义模型
*/
var Kitten = mongoose.model('Kitten', kittySchema); /**
* 模型实例
*/
var silence = new Kitten({ name: 'Silence' });
console.log(silence.name); // 'Silence'
silence.save(); //插库 var fluffy = new Kitten({ name: 'fluffy' });
fluffy.save(function (err, fluffy) {
if (err) return console.error(err);
fluffy.speak();
}); }); app.use(bodyParser()); app.use(cors({
origin: function (ctx) {
return '*';
}
})); let files = fs.readdirSync(__dirname + '/controllers');
let js_files = files.filter((f)=>{
return f.endsWith('.js');
}); for( let f of js_files ){
console.log(`process conteoller : ${f} ...`);
let mapping = require(__dirname + '/controllers/' + f ); for ( let url in mapping ){
if( url.startsWith('GET ')){
//如果url类似'GET xxx'
let path = url.substring(4);
router.get(path,mapping[url]);
}else if( url.startsWith('POST ') ){
//如果url类似'POST xxx'
let path = url.substring(5);
console.log('请求方式是:',path);
router.post(path,mapping[url]);
}
} } app.use(router.routes()); app.listen(8888);
console.log('app started at port 8888...');

kora 简单使用实现Api接口 以及mongodb简单使用的更多相关文章

  1. 一种简单的REST API接口加密实现,只允许自己的产品调用后台,防止接口被刷

    在项目上线后,后台接口很容易通过抓包工具看到, 难免被人为构造恶意请求攻击我们的系统,相信大家都或多或少都遇到过短信验证码被刷.疯狂留言灌水.数据被恶意爬取等问题,这种直接抓接口然后写个循环调用的行为 ...

  2. 新浪短网址最新api接口

    1,雨林短网址 网站链接:http://yldwz.cn 雨林短网址采用新浪.腾讯官方API接口,强大的多功能API,简单易用,质量高官 网提供强技术支持,99.9% SLA服务稳定安全可靠的校验机制 ...

  3. 没想到吧,Java开发 API接口可以不用写 Controller了

    本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便 ...

  4. .Net RabbitMQ实战指南——HTTP API接口调用

    RabbitMQ Management插件还提供了基于RESTful风格的HTTP API接口来方便调用.一共涉及4种HTTP方法:GET.PUT.DELETE和POST.GET方法一般用来获取如集群 ...

  5. 使用go, gin, gorm编写一个简单的curd的api接口

    go 是一门非常灵活的语言,既具有静态语言的高性能,又有动态语言的开发速度快的优点,语法也比较简单,下面是通过简单的代码实现了一个简单的增删改查 api 接口 hello world 常规版 新建 d ...

  6. 如何使用Postman快速简单的调用快递物流平台快递鸟API接口

    前沿 快递鸟是一家聚合类的第三方快递物流平台,目前该平台提供的产品主要以API为主.由于API不能直观的看到产品效果,需要进行API对接联调成功后才能真实的看到产品的实际效果.但是如果一上来就写代码进 ...

  7. 简单天气应用开发——API接口

    寒假回家无事,想到自学iOS开发已有一段时间,还没做过真正自己的应用,就起了做一个天气预报App的念头. 想到就做.天气预报第一步自然是找到好用的API接口来获取天气信息.在百度上搜索了一圈,找到的都 ...

  8. 有了这个api接口工具-微信跳转其他浏览器下载app就这么简单

    现在微信渠道可以说是拉新最快的渠道,因为微信具备强裂变性.但是目前微信对第三方下载链接的拦截是越来越严格了,那么想要在微信内肆无忌惮地推广链接就需要用到微信跳转浏览器的api接口,那如何获取该api接 ...

  9. 一个登陆浏览api接口; 其他相关: Form_with参数的不同写法; 简单使用curl。

    eeting-up app: 完成一个需求: 完成:https://github.com/chentianwei411/meeting-up-app 第四步实现API接口 Add api base a ...

  10. 简单几行代码使用百度地图API接口分页获取信息

    首发于: 万能助手扩展开发:使用百度地图API接口分页获取信息_电脑计算机编程入门教程自学 http://jianma123.com/viewthread.aardio?threadid=426 使用 ...

随机推荐

  1. java读取apk、ipa包名、版本名、版本号等信息

    package com.gymexpress.exerciseservice.controller;import com.gymexpress.commonmodel.controller.BaseC ...

  2. pandas-数据结构转换-纵转横

    如下代码,亲测有效,后面会附上入口以及出口数据结构截图 def test_func(file_path): """ 把pandas数据结构-dataframe,横向的索引 ...

  3. PHP_工厂模式

    实例化类,先需要引入类文件,但是有时候我们并不知道可能要用到那些类,如果将所有类文件全部引入,会造成资源浪费,这时候可以采用工厂模式,专门用于 自动加载.实例化 类. 实例代码: 注:案例中假设有一个 ...

  4. 使用fopen,fscanf等函数报安全性问题的错误,unsafe...

    方法一:项目-属性-C/C++-预处理器定义,添加_CRT_SECURE_NO_WARNINGS. 方法二:使用fopen_s,fscanf_s等安全函数.

  5. CCF 201903-1 小中大

    #include <iostream> #include <bits/stdc++.h> #include <string> using namespace std ...

  6. Python的入门复习一 Day 8——from“夜曲编程”

    Day 8 time: 2021.8.5. 原来P课程已经安排好了专题复习呢.所以,今天的重心就落在了角落知识点于相关课程实践上了.这次总结,也是一如既往地兵分两路呢. 注意事项: 格式化时,在前,引 ...

  7. VUE 打包正则报错:Error parsing regular expression: Invalid regular expression:

    需要用new RegExp代替// 如: num = num.replace(/(?<=\d\.\d{2})./, '');换成 let reg = new RegExp("(?< ...

  8. 连接HBase

    单线连接HBasepublic class HBaseConnection { public static void main(String[] args) throws IOException { ...

  9. 越权检测 burp插件 autorize 使用

    Autorize 官方描述 Autorize 是 Burp Suite 的自动授权强制检测扩展.它是由应用程序安全专家 Barak Tawily 用 Python 编写的.Autorize 旨在通过执 ...

  10. Jenkins自动化部署(linux环境)---代码提交触发Jenkins构建

    1.在工程中点击构建触发器中选择Generic Webhook Trigger,填写token 2.gitee配置Webhook 选择gitee项目中的Settings->Webhooks> ...