2023-01-05 17:00:49 +08:00
|
|
|
/**
|
|
|
|
* {}
|
|
|
|
* @author yutent<yutent.io@gmail.com>
|
|
|
|
* @date 2022/10/10 17:00:29
|
|
|
|
*/
|
|
|
|
|
|
|
|
import fs from 'iofs'
|
|
|
|
|
|
|
|
export function writeMainJs(file) {
|
|
|
|
fs.echo(
|
|
|
|
`
|
2023-11-02 11:16:54 +08:00
|
|
|
import { createApp } from '@gm5/core'
|
|
|
|
|
|
|
|
const app = createApp()
|
|
|
|
|
|
|
|
// // 也可以在创建应用时, 就传递一些配置进去, 等价于下面的 app.set({...})
|
|
|
|
// const app = createApp({...})
|
2023-01-05 17:00:49 +08:00
|
|
|
|
|
|
|
|
|
|
|
// app.set({
|
2023-11-02 11:16:54 +08:00
|
|
|
// // 可开启跨域支持
|
|
|
|
// cors: { enabled: true }
|
2023-01-05 17:00:49 +08:00
|
|
|
// })
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-11-02 11:16:54 +08:00
|
|
|
// 预加载应用, 这一步是必须的, 且需要在run()方法前调用
|
2023-01-05 17:00:49 +08:00
|
|
|
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)
|
2023-11-02 11:16:54 +08:00
|
|
|
.run()
|
2023-01-05 17:00:49 +08:00
|
|
|
|
|
|
|
`,
|
|
|
|
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'
|
|
|
|
|
2023-11-02 11:16:54 +08:00
|
|
|
// 也可以不继承 Controller。 如用到session/jwt/views模块, 可继承Controller, 以获得更简单的调用方式(也可以不继承)。
|
|
|
|
//
|
|
|
|
export default class extends Controller {
|
2023-01-05 17:00:49 +08:00
|
|
|
|
|
|
|
// 这个main方法是可选的, 如果有定义, 会自动先调用
|
|
|
|
// 可以在这里做任何需要预处理的事, 支持async/await
|
|
|
|
// 若返回 false, 则可以终止程序往下执行
|
|
|
|
// 这个特性, 可用于权限验证等操作
|
|
|
|
__main__() {
|
|
|
|
// this.model = new Model(this.context.$$mysql)
|
|
|
|
}
|
|
|
|
|
|
|
|
async indexAction(){
|
2023-11-02 11:16:54 +08:00
|
|
|
this.response.body = 'It works!'
|
2023-01-05 17:00:49 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
`,
|
|
|
|
file
|
|
|
|
)
|
|
|
|
}
|