Skip to content

鱼骨框架——基于koa2实现的web框架

Notifications You must be signed in to change notification settings

MalavitaC/Fishbone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fishbone是什么

轻量级可扩展的敏捷开发Node.js框架,支持ES6/7全新特性,支持Koa、Express中间件。

特性

基于koa2

Fishbone基于著名的Node.js框架koa2进行了封装。扩展了Koa的功能,能够迅速的进行Web开发。

支持灵活的自定义路由

Fishbone采用的模式(module/controller/dao)路由规则以外,还支持用户定制路由。 在项目中遵循路径即url配置即可灵活的支持Restful等各种自定义路由。

中间件

支持JWT鉴权、解决跨域、报错捕捉和请求中的文件解析等中间件。并且开发者可以自由的定义/编写中间件。


如何使用

创建项目结构

.
├-- server
|   ├-- Controllers 	控制器
|   |	├-- user.js 	用户模块接口文件
|   |	└-- login.js 	登陆模块接口文件
|   ├-- Dao 	数据库操作层
|   |	├-- userDao.js 		用户模块数据库操作文件
|   |	└-- loginDao.js 	登陆模块数据库操作文件
|   ├-- Model 	表模型
|   |	├-- mongo 	mongodb表模型
|   |	|	└-- user_info.js 	模型文件
|   |	├-- mysql 	mysql表模型
|   |	└	└-- user.js 	模型文件
|   ├-- Util 	工具
|   |	└-- public.js 	通用方法
|   └-- Base.js 	注册文件
├-- config.js 	数据库配置、端口配置
├-- start.js 	启动文件
├-- package.json 	npm依赖目录
└-- yarn.lock 	yarn依赖目录

文件说明

入口文件

start.js

const base = require('./server/Base');
const config = require('./config');
const {App} = require('fishbone_c');
const app = new App({config, base});

class start{

	static async run(){

		//连接数据库
		await app.createDb();

		// 启动服务
		await app.strat();
	}
};

start.run();

此文件为启动文件。主要进行了创建数据库连接,注册控制器和生成表模型。

服务配置文件

config.js

module.exports = {
	db:{
		mysql:{
			dbname: '数据库名称',
			username:'账号',
			password: '密码',
			tablePrefix:"前缀",
			options:{
				host: "服务器IP",
				port: '端口',
				dialect: '数据库类型',
				logging: 日志输出开关
			}
		},
		mongo:{
			url: "mongodb://账号:密码@服务器IP:端口/数据库名称",
			tablePrefix:"前缀",
		}
	},
	port: 服务端口,
	secret: 'JWT鉴权密钥',
	noAuth: [
		/\/user\/login/, 
		不需要鉴权的接口
	],
}

配置mysql和mongodb的连接参数、端口号、JWT鉴权密钥和不需要鉴权的接口。

安装项目依赖

npm:

npm install fishbone_c

yarn:

yarn add fishbone_c

启动服务

在根目录打开命令窗口,执行命令行

node start.js

About

鱼骨框架——基于koa2实现的web框架

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published