/** * {} * @author yutent * @date 2022/10/10 17:00:29 */ import fs from 'iofs' export function writeMainJs(file) { fs.echo( ` import { createApp } from '@gm5/core' const app = createApp() // // 也可以在创建应用时, 就传递一些配置进去, 等价于下面的 app.set({...}) // const app = createApp({...}) // app.set({ // // 可开启跨域支持 // cors: { enabled: true } // }) // 预加载应用, 这一步是必须的, 且需要在run()方法前调用 app.preload('./apps/') // 中间件示例 // 这里的回调, 如果不用箭头函数的话, this指向app // app.use((req, res, next) => { // if (req.method !== 'GET') { // return res.error('', 401) // } // // 这一步很重要, 如果没有执行 next(), 则程序就会在这个回调里终止 // // 不会再往后执行其他的了 // next() // }) // 安装拓展包, 可以应用中通过 this.context.$$mysql 调用到, // 在中间件, 或后面的其他拓展包中, 可以直接 this.$$mysql 调用 // app.install({ // name: 'mysql', // install: function() { // return new Mysqli(conf) // } // }) app.listen(3000) .run() `, file ) } export function writeModelJs(file) { fs.echo( ` // 数据模型|存储交互 export default class Index { constructor(conn){ // this.db = conn.emit(false, 'test') } list(){ // return this.db.table('user').withFields(['id', 'name']).getAll() } } `, file ) } export function writeAppJs(file) { fs.echo( ` import Controller from '@gm5/controller' // import Model from '../models/index.js' // 也可以不继承 Controller。 如用到session/jwt/views模块, 可继承Controller, 以获得更简单的调用方式(也可以不继承)。 // export default class extends Controller { // 这个main方法是可选的, 如果有定义, 会自动先调用 // 可以在这里做任何需要预处理的事, 支持async/await // 若返回 false, 则可以终止程序往下执行 // 这个特性, 可用于权限验证等操作 __main__() { // this.model = new Model(this.context.$$mysql) } async indexAction(){ this.response.body = 'It works!' } } `, file ) }