test
This commit is contained in:
parent
ad6cc0747b
commit
b53ac87c76
4
.gitignore
vendored
4
.gitignore
vendored
@ -13,3 +13,7 @@ run/
|
|||||||
*.un~
|
*.un~
|
||||||
.tsbuildinfo
|
.tsbuildinfo
|
||||||
.tsbuildinfo.*
|
.tsbuildinfo.*
|
||||||
|
.s
|
||||||
|
.serverless
|
||||||
|
serverless.zip
|
||||||
|
|
||||||
|
30
README.md
30
README.md
@ -1,29 +1,5 @@
|
|||||||
# my_midway_project
|
### swagger
|
||||||
|
|
||||||
## QuickStart
|
```shell
|
||||||
|
/swagger-ui/index.html#/
|
||||||
<!-- add docs here for user -->
|
|
||||||
|
|
||||||
see [midway docs][midway] for more detail.
|
|
||||||
|
|
||||||
### Development
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm i
|
|
||||||
$ npm run dev
|
|
||||||
$ open http://localhost:7001/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Deploy
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm start
|
|
||||||
```
|
|
||||||
|
|
||||||
### npm scripts
|
|
||||||
|
|
||||||
- Use `npm run lint` to check code style.
|
|
||||||
- Use `npm test` to run unit test.
|
|
||||||
|
|
||||||
|
|
||||||
[midway]: https://midwayjs.org
|
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
# my_midway_project
|
|
||||||
|
|
||||||
## 快速入门
|
|
||||||
|
|
||||||
<!-- 在此次添加使用文档 -->
|
|
||||||
|
|
||||||
如需进一步了解,参见 [midway 文档][midway]。
|
|
||||||
|
|
||||||
### 本地开发
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm i
|
|
||||||
$ npm run dev
|
|
||||||
$ open http://localhost:7001/
|
|
||||||
```
|
|
||||||
|
|
||||||
### 部署
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm start
|
|
||||||
```
|
|
||||||
|
|
||||||
### 内置指令
|
|
||||||
|
|
||||||
- 使用 `npm run lint` 来做代码风格检查。
|
|
||||||
- 使用 `npm test` 来执行单元测试。
|
|
||||||
|
|
||||||
|
|
||||||
[midway]: https://midwayjs.org
|
|
14
package.json
14
package.json
@ -6,14 +6,17 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@midwayjs/bootstrap": "^3.12.3",
|
"@midwayjs/bootstrap": "^3.12.3",
|
||||||
"@midwayjs/core": "^3.12.3",
|
"@midwayjs/core": "^3.12.3",
|
||||||
|
"@midwayjs/cross-domain": "^3.12.3",
|
||||||
"@midwayjs/decorator": "^3.12.3",
|
"@midwayjs/decorator": "^3.12.3",
|
||||||
"@midwayjs/info": "^3.12.3",
|
"@midwayjs/info": "^3.12.3",
|
||||||
"@midwayjs/koa": "^3.12.3",
|
"@midwayjs/koa": "^3.12.3",
|
||||||
"@midwayjs/logger": "^2.14.0",
|
"@midwayjs/logger": "^2.14.0",
|
||||||
"@midwayjs/validate": "^3.12.3"
|
"@midwayjs/swagger": "^3.12.4",
|
||||||
|
"@midwayjs/validate": "^3.12.3",
|
||||||
|
"@midwayjs/view-ejs": "^3.12.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@midwayjs/cli": "^2.0.0",
|
"@midwayjs/cli": "^2.1.1",
|
||||||
"@midwayjs/mock": "^3.12.3",
|
"@midwayjs/mock": "^3.12.3",
|
||||||
"@types/jest": "^29.2.0",
|
"@types/jest": "^29.2.0",
|
||||||
"@types/koa": "^2.13.4",
|
"@types/koa": "^2.13.4",
|
||||||
@ -21,6 +24,7 @@
|
|||||||
"cross-env": "^6.0.0",
|
"cross-env": "^6.0.0",
|
||||||
"jest": "^29.2.2",
|
"jest": "^29.2.2",
|
||||||
"mwts": "^1.0.5",
|
"mwts": "^1.0.5",
|
||||||
|
"swagger-ui-dist": "^5.6.2",
|
||||||
"ts-jest": "^29.0.3",
|
"ts-jest": "^29.0.3",
|
||||||
"typescript": "~4.8.0"
|
"typescript": "~4.8.0"
|
||||||
},
|
},
|
||||||
@ -46,5 +50,9 @@
|
|||||||
"url": ""
|
"url": ""
|
||||||
},
|
},
|
||||||
"author": "anonymous",
|
"author": "anonymous",
|
||||||
"license": "MIT"
|
"license": "MIT",
|
||||||
|
"optionalDependencies": {
|
||||||
|
"@midwayjs/cli-plugin-faas": "^2.1.2",
|
||||||
|
"@midwayjs/cli-plugin-generator": "^2.1.0"
|
||||||
|
}
|
||||||
}
|
}
|
1977
pnpm-lock.yaml
1977
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,18 @@
|
|||||||
import { MidwayConfig } from '@midwayjs/core';
|
import { MidwayConfig } from '@midwayjs/core';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// use for cookie sign key, should change to your own and keep security
|
keys: 'XkGaNxf2Q9b7zY2eDVVuNx',
|
||||||
keys: '1693555233471_3819',
|
|
||||||
koa: {
|
koa: {
|
||||||
port: 7001,
|
port: 3000,
|
||||||
},
|
},
|
||||||
|
cors: {
|
||||||
|
origin: "*",
|
||||||
|
},
|
||||||
|
view: {
|
||||||
|
defaultExtension: '.ejs',
|
||||||
|
mapping: {
|
||||||
|
'.ejs': 'ejs',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ejs: {},
|
||||||
} as MidwayConfig;
|
} as MidwayConfig;
|
||||||
|
7
src/config/config.local.ts
Normal file
7
src/config/config.local.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import { MidwayConfig } from "@midwayjs/core";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
koa: {
|
||||||
|
port: 3000
|
||||||
|
},
|
||||||
|
} as MidwayConfig
|
7
src/config/config.prod.ts
Normal file
7
src/config/config.prod.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import { MidwayConfig } from "@midwayjs/core";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
koa: {
|
||||||
|
port: 3000
|
||||||
|
},
|
||||||
|
} as MidwayConfig
|
@ -6,15 +6,25 @@ import { join } from 'path';
|
|||||||
// import { DefaultErrorFilter } from './filter/default.filter';
|
// import { DefaultErrorFilter } from './filter/default.filter';
|
||||||
// import { NotFoundFilter } from './filter/notfound.filter';
|
// import { NotFoundFilter } from './filter/notfound.filter';
|
||||||
import { ReportMiddleware } from './middleware/report.middleware';
|
import { ReportMiddleware } from './middleware/report.middleware';
|
||||||
|
import * as swagger from '@midwayjs/swagger';
|
||||||
|
import * as view from '@midwayjs/view-ejs';
|
||||||
|
import * as crossDomain from '@midwayjs/cross-domain';
|
||||||
|
|
||||||
|
|
||||||
@Configuration({
|
@Configuration({
|
||||||
imports: [
|
imports: [
|
||||||
koa,
|
koa,
|
||||||
validate,
|
validate,
|
||||||
|
view,
|
||||||
|
crossDomain,
|
||||||
{
|
{
|
||||||
component: info,
|
component: info,
|
||||||
enabledEnvironment: ['local'],
|
enabledEnvironment: ['local'],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
component: swagger,
|
||||||
|
enabledEnvironment: ['local']
|
||||||
|
}
|
||||||
],
|
],
|
||||||
importConfigs: [join(__dirname, './config')],
|
importConfigs: [join(__dirname, './config')],
|
||||||
})
|
})
|
||||||
@ -23,9 +33,6 @@ export class MainConfiguration {
|
|||||||
app: koa.Application;
|
app: koa.Application;
|
||||||
|
|
||||||
async onReady() {
|
async onReady() {
|
||||||
// add middleware
|
|
||||||
this.app.useMiddleware([ReportMiddleware]);
|
this.app.useMiddleware([ReportMiddleware]);
|
||||||
// add filter
|
|
||||||
// this.app.useFilter([NotFoundFilter, DefaultErrorFilter]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
import { Inject, Controller, Get, Query } from '@midwayjs/core';
|
|
||||||
import { Context } from '@midwayjs/koa';
|
|
||||||
import { UserService } from '../service/user.service';
|
|
||||||
|
|
||||||
@Controller('/api')
|
|
||||||
export class APIController {
|
|
||||||
@Inject()
|
|
||||||
ctx: Context;
|
|
||||||
|
|
||||||
@Inject()
|
|
||||||
userService: UserService;
|
|
||||||
|
|
||||||
@Get('/get_user')
|
|
||||||
async getUser(@Query('uid') uid) {
|
|
||||||
const user = await this.userService.getUser({ uid });
|
|
||||||
return { success: true, message: 'OK', data: user };
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +1,15 @@
|
|||||||
import { Controller, Get } from '@midwayjs/core';
|
import { Controller, Get, Inject } from '@midwayjs/core';
|
||||||
|
import { Context } from '@midwayjs/koa';
|
||||||
|
|
||||||
@Controller('/')
|
@Controller('/')
|
||||||
export class HomeController {
|
export class HomeController {
|
||||||
|
@Inject()
|
||||||
|
ctx: Context;
|
||||||
|
|
||||||
@Get('/')
|
@Get('/')
|
||||||
async home(): Promise<string> {
|
async home() {
|
||||||
return 'Hello Midwayjs!';
|
await this.ctx.render('index', {
|
||||||
|
data: 'world',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
/**
|
|
||||||
* @description User-Service parameters
|
|
||||||
*/
|
|
||||||
export interface IUserOptions {
|
export interface IUserOptions {
|
||||||
uid: number;
|
uid: number;
|
||||||
}
|
}
|
||||||
|
declare module '@midwayjs/core' {
|
||||||
|
interface Context {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
import { Provide } from '@midwayjs/core';
|
|
||||||
import { IUserOptions } from '../interface';
|
|
||||||
|
|
||||||
@Provide()
|
|
||||||
export class UserService {
|
|
||||||
async getUser(options: IUserOptions) {
|
|
||||||
return {
|
|
||||||
uid: options.uid,
|
|
||||||
username: 'mockedName',
|
|
||||||
phone: '12345678901',
|
|
||||||
email: 'xxx.xxx@xxx.com',
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
import { createApp, close, createHttpRequest } from '@midwayjs/mock';
|
|
||||||
import { Framework } from '@midwayjs/koa';
|
|
||||||
|
|
||||||
describe('test/controller/home.test.ts', () => {
|
|
||||||
|
|
||||||
it('should POST /api/get_user', async () => {
|
|
||||||
// create app
|
|
||||||
const app = await createApp<Framework>();
|
|
||||||
|
|
||||||
// make request
|
|
||||||
const result = await createHttpRequest(app).get('/api/get_user').query({ uid: 123 });
|
|
||||||
|
|
||||||
// use expect by jest
|
|
||||||
expect(result.status).toBe(200);
|
|
||||||
expect(result.body.message).toBe('OK');
|
|
||||||
|
|
||||||
// close app
|
|
||||||
await close(app);
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,21 +0,0 @@
|
|||||||
import { createApp, close, createHttpRequest } from '@midwayjs/mock';
|
|
||||||
import { Framework } from '@midwayjs/koa';
|
|
||||||
|
|
||||||
describe('test/controller/home.test.ts', () => {
|
|
||||||
|
|
||||||
it('should GET /', async () => {
|
|
||||||
// create app
|
|
||||||
const app = await createApp<Framework>();
|
|
||||||
|
|
||||||
// make request
|
|
||||||
const result = await createHttpRequest(app).get('/');
|
|
||||||
|
|
||||||
// use expect by jest
|
|
||||||
expect(result.status).toBe(200);
|
|
||||||
expect(result.text).toBe('Hello Midwayjs!');
|
|
||||||
|
|
||||||
// close app
|
|
||||||
await close(app);
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
12
view/index.ejs
Normal file
12
view/index.ejs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Midway</h1>
|
||||||
|
<a href="/swagger-ui/index.html#/" target="_blank">swagger</a>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user