kora 简单使用实现Api接口 以及mongodb简单使用
2024-09-08 19:33:01
//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...');
最新文章
- 应用程序启动管理 Winform版
- ANdroid Studio查看debug SHA1
- 【Alpha阶段】第四次Scrum例会
- struct和union分析实例
- 【BZOJ】3319: 黑白树(并查集+特殊的技巧/-树链剖分+线段树)
- 【BZOJ】1603: [Usaco2008 Oct]打谷机(水题+dfs)
- shell脚本变量定义注意别跟系统变量重名了……
- IOS键盘样式风格有关设置
- mysql数据库中查询时间
- oracle core 概述
- Java解析和生成XML
- 播放器音乐源之天天动听API
- HDU 5972 Regular Number(ShiftAnd+读入优化)
- 让动态创建的ActiveX控件响应Windows消息
- 【Cocos得知】技术要点通常的积累
- Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1
- Redis压缩列表
- 深入理解Java虚拟机阅读心得(二)
- Navicat远程连接不上mysql解决方案
- 211806385 黄存慧 https://www.cnblogs.com/huangch/ https://github.com/HuangCh327