//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. for/in 语句用于循环对象属性

    for/in 语句用于循环对象属性. 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作. JavaScript 支持不同类型的循环: for - 循环代码块一定的次数 for/in  ...

  2. linux下生成证书

    1.生成私有证书 # 生成需要密码的密钥文件server.key openssl genrsa -des3 -out server.key 2048 # 转成不用密码的rsa密钥文件 openssl ...

  3. Word发博客测试

    这是一篇来自word的文章测试,测试word写博客发布效果. 操作参考:http://www.cnblogs.com/liezhengli/p/5854470.html 关键在于找到博客园的MetaW ...

  4. Kubernetes--Pod对象的生命周期

    Pod对象自从其创建开始至其终止退出的时间范围称为其生命周期.在这段时间中,Pod会处于多种不同的状态,并执行一些操作:其中,创建主容器(main container)为必需的操作,其他可选的操作还包 ...

  5. C#封装FluentValidation

    FluentValidation是一个非常强大的用于构建强类型验证规则的 .NET 框架,帮程序员解决了繁琐的校验问题,用起来非常爽,但我还是遇到了一件非常不爽的事情,如下代码所示: public c ...

  6. [服务器]Windows Server 2008 64位1核1G安装SQL Server2008

    本文为原创文章,转载请注明出处!我的博客地址:http://www.cnblogs.com/txwd 这台服务器是2017年初买的,那时候1核1G,3年要1500.不过现在便宜了,2核4G,3年也就1 ...

  7. js防止表单重复方法

    用flag标识,下面的代码设置checkSubmitFlg标志: <script language=""javascript""> var chec ...

  8. JS脱敏姓名、身份证、电话、邮箱

    一.姓名脱敏 handleName(name) { let arr = Array.from(name) let result = '' if (arr.length === 2) { result ...

  9. sql语句查询优化

    SQL 性能优化 explain 中的 type:至少要达到 range 级别,要求是 ref 级别,如果可以是 consts 最好. consts:单表中最多只有一个匹配行(主键或者唯一索引),在优 ...

  10. vue 中的 .sync 修饰符 与 this.$emit('update:key', value)

    vue 中 .sync 修饰符,是 2.3.0+ 版本新增的功能 在有些情况下,我们可能需要对一个 prop 进行"双向绑定".不幸的是,真正的双向绑定会带来维护上的问题,因为子组 ...