diff --git a/source/route/api/user/index.ts b/source/route/api/user/index.ts index 103b293..ab37110 100644 --- a/source/route/api/user/index.ts +++ b/source/route/api/user/index.ts @@ -12,6 +12,7 @@ import * as bcrypt from "bcrypt"; import * as jwt from "jsonwebtoken"; import * as Joi from "joi"; import { UserSchema } from "@/schema"; +import { ReturnValue, Req, Res } from "#/global"; export default class { @validate({ @@ -20,8 +21,8 @@ export default class { @method("POST") @swagger("用户注册", "返回注册用户的信息", ["api"]) @auth(false) - async register(request, h) { - let { username, password, email } = request.payload; + async register(request: Req, h: Res): ReturnValue { + let { username, password, email } = request.payload as any; if (!username) username = email; logger.trace(username, email); try { @@ -39,7 +40,7 @@ export default class { } @method("POST") - async logout(request, h) { + async logout(request: Req, h: Res): ReturnValue { request.cookieAuth.clear(); return gSuccess("success"); } @@ -53,8 +54,8 @@ export default class { @auth(false) @method("POST") @swagger("用户登录", "返回注册用户的信息", ["api"]) - async login(request, h) { - let { username, password } = request.payload; + async login(request: Req, h: Res): ReturnValue { + let { username, password } = request.payload as any; const result = await User.findOne({ where: { username: username } }); if (result == null) { return gFail(null, "不存在该用户"); @@ -76,7 +77,7 @@ export default class { @method("DELETE") @auth() @swagger("删除用户", "删除用户账号", ["sum"]) - async del(request, h) { + async del(request: Req, h: Res): ReturnValue { const { id } = request.auth.credentials; let result = await User.findOne({ where: { id: id } }); if (result == null) { @@ -93,7 +94,7 @@ export default class { }).unknown(), // 注意加上这个 }) @swagger("获取用户信息", "返回注册用户的信息", ["用户操作", "api"]) - async userinfo(request, h) { + async userinfo(request: Req, h: Res): ReturnValue { console.log(request); const { id } = request.auth.credentials; diff --git a/source/route/index/index.ts b/source/route/index/index.ts index 8f7ffc5..cf92919 100644 --- a/source/route/index/index.ts +++ b/source/route/index/index.ts @@ -6,7 +6,7 @@ import { swagger, validate, } from "@noderun/hapi-router"; -import { PromiseReturnValue, Req, Res, ReturnValue } from "#/global"; +import { Req, Res, ReturnValue } from "#/global"; import UploadFunc from "../demo/_upload"; import Joi from "joi"; import User from "@/model/User"; @@ -19,7 +19,7 @@ export default class Index{ mode: "try", }, }) - index(request: Req, h: Res): ReturnValue { + async index(request: Req, h: Res): ReturnValue { console.log(request.auth.isAuthenticated); // console.log(request.auth); // if (request.isAuthenticated) { @@ -38,7 +38,7 @@ export default class Index{ @method("POST") @auth(false) @route("/login") - async login(request: Req, h: Res): PromiseReturnValue { + async login(request: Req, h: Res): ReturnValue { const { username, password } = request.payload as any; const account = await User.findOne({ where: { username: username } }); diff --git a/types/global.d.ts b/types/global.d.ts index 1441583..7ef4c40 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -1,6 +1,7 @@ import { Logger } from "log4js"; import { Server } from "@hapi/hapi"; import { Request, ResponseToolkit, Lifecycle } from "@hapi/hapi"; +import { Model, ModelCtor } from "Sequelize"; declare global { var server: Server; @@ -10,6 +11,9 @@ declare global { } declare module '@hapi/hapi' { + interface Request { + getModel(name: string): ModelCtor> + } interface ResponseToolkit { } @@ -17,5 +21,4 @@ declare module '@hapi/hapi' { export declare type Req = Request export declare type Res = ResponseToolkit -export declare type ReturnValue = Lifecycle.ReturnValue -export declare type PromiseReturnValue = Promise \ No newline at end of file +export declare type ReturnValue = Promise \ No newline at end of file