# mvc **Repository Path**: vinojs/mvc ## Basic Information - **Project Name**: mvc - **Description**: 使用Vino开发的MVC框架 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2025-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MVC 一个基于`vino`的mvc框架,在web开发中,可以减少模块之间的直接依赖和循环引用。 ### 安装 ```bash vino install gitee.com/vinojs/mvc ``` ### 使用 ```js import mvc, { controller, component, init, scheduled, filter, server } from "gitee.com/vinojs/mvc/index.js" // 初始化服务器 server({ value: { addr: ":8080" } }); //注册controller controller({ name: "/test/t1", method: "get", value() { return { code: 0, data: "hello vino" } } }) //启动mvc容器 mvc.run() ``` ## 组件介绍 `mvc`框架中包含了`controller`, `component`, `init`, `scheduled`, `filter`, `server` 共6种类型的组件。 每种类型的组件作用如下: ### component 通用组件,用于实现各类业务逻辑 ```js import { component } from "gitee.com/vinojs/mvc/index.js" component({ //组件名称 name: "test", //命名空间 namespace: "default", //组件描述 description: "这是一个测试组件", //组件的执行函数 value(x,y) { return x+y } }) ``` ### controller 控制器,用于处理请求和响应。 ```js import { controller} from "gitee.com/vinojs/mvc/index.js" controller({ //请求的url地址 name: "/test/t1", //命名空间 namespace: "default", //描述 description: "", //服务器对象 server: "default", //请求的方法 method: "get", //请求头 header: { "Content-Type": "application/json; charset=utf-8" }, //请求参数校验 valid: { //查询参数 query: {}, //param参数 param: {}, //body参数 body: { id: [ { notEmpty: true,type:"string",message:"缺少id"} ], } }, //依赖组件 dependency: { //component组件名称 test: "test", }, //请求的处理函数 value(ctx,body,param,query) { //请求体对象 console.log(body) return { code: 0, data: this.dependency.test(1,2) } } }) ``` ### init 容器启动后自动执行的组件。 ```js import { init } from "gitee.com/vinojs/mvc/index.js" init({ //组件名称 name: "inti1", //命名空间 namespace: "default", //组件描述 description: "", //组件的执行函数 value() { console.log("init") } }) ``` ### scheduled 定时任务组件 ```js import { scheduled } from "gitee.com/vinojs/mvc/index.js" scheduled({ //定时任务的名称 name: "scheduled1", //命名空间 namespace:"default", //描述 description:"", //cron表达式,用于指定任务的执行时间.[单独使用,优先级最高] cron:"", //指定任务结束后的延迟时间(毫秒),任务会在固定的延迟时间后执行。这意味着任务不会并行执行,上一个任务完成后,等待指定的延迟时间才会执行下一个任务。 //[可以和initialDelay一起使用] fixedDelay:0, //指定任务的初始延迟时间(毫秒),任务会在应用程序启动后的固定延迟时间后执行一次。这个参数可以与fixedRate或fixedDelay结合使用。 //[不能独立使用] initialDelay:0, //指定任务的固定间隔时间(毫秒),任务会按照固定的频率执行。如果任务执行的时间超过指定的间隔时间,下一个任务会在上一个任务完成后立即执行。 //[可以和initialDelay一起使用] fixedRate:0, //依赖注入 dependency: { //component组件名称 test: "test", }, //定时任务的执行函数 value() { console.log("scheduled") } }) ``` ### filter 过滤请求和响应的组件 ```js import { filter } from "gitee.com/vinojs/mvc/index.js" filter({ name: "filter1", namespace:"default", //命名空间 server:"default", //服务器对象 value(ctx) { console.log("filter") ctx.next() } }) ``` ### server 服务器组件,用于初始化服务器 ```js import { server } from "gitee.com/vinojs/mvc/index.js" server({ //命名空间 namespace:"default", //描述 description:"", //服务器配置 value: { //服务器地址 addr: ":8080" } }) ```