diff --git a/.gitignore b/.gitignore index 40daab6..2db9b4c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ tmp/ temp/ yarn.lock ormconfig.json -.env \ No newline at end of file +.env +dist/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 1b1e7e6..610d3da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,18 +2,9 @@ FROM node:20 LABEL authors="ivamp" WORKDIR /app -# 忽略 node_modules 目录 -COPY src /app/src -COPY package.json /app/package.json -COPY .env.example /app/.env.example -COPY main.ts /app/main.ts -RUN npm config set registry https://registry.npm.taobao.org/ -RUN npm install +# 将本文件夹 dist 下的目录复制 +ADD ./dist /app - -CMD [ "npm", "run", "migrate" ] - -CMD [ "npm", "run", "start" ] - -EXPOSE 8080 +EXPOSE 3000 +ENTRYPOINT ["node", "index.js"] diff --git a/package.json b/package.json index 3f2b152..5f34586 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,9 @@ "start": "ts-node main.ts", "typeorm": "typeorm-ts-node-commonjs", "migrate": "typeorm-ts-node-commonjs migration:run -d src/config/typeorm.ts", - "migrate:rollback": "typeorm-ts-node-commonjs migration:revert -d src/config/typeorm.ts" + "migrate:rollback": "typeorm-ts-node-commonjs migration:revert -d src/config/typeorm.ts", + "make:migration": "typeorm-ts-node-commonjs migration:create", + "migration:fresh": "typeorm-ts-node-commonjs schema:drop -d src/config/typeorm.ts", + "build": "ncc build main.ts -o dist" } } diff --git a/src/config/manager.ts b/src/config/manager.ts index db1c1ec..6df349d 100644 --- a/src/config/manager.ts +++ b/src/config/manager.ts @@ -2,11 +2,12 @@ import typeorm from "./typeorm"; typeorm.initialize().then(async () => { console.log("Datasource initialized.") + + console.log("Run database migrations.") + typeorm.runMigrations().then(async () => { + console.log("Migration run successfully.") + }).catch(error => console.log(error)) }).catch(error => console.log(error)) -typeorm.runMigrations().then(async () => { - console.log("Migration run successfully.") -}).catch(error => console.log(error)) - export default typeorm.manager \ No newline at end of file diff --git a/src/config/middleware.ts b/src/config/middleware.ts index 55fe927..e72a93f 100644 --- a/src/config/middleware.ts +++ b/src/config/middleware.ts @@ -1,8 +1,19 @@ -import {NextFunction, Request, Response} from 'express' +import {NextFunction, Response} from 'express' import {JWTRequest} from "../types/JWTRequest"; const getUser = (req: JWTRequest, res: Response, next: NextFunction) => { + + // 检测有无 authorization + if (!req.headers.authorization) { + return res.status(401).send({ + 'message': 'Unauthorized with no authorization header.' + }) + } + + // 从 header 中获取 token + + const token = req.headers.authorization.split(' ')[1] // 获取 JWT 的用户部分