[{"title":"( 52 个子文件 129KB ) backend-postgres-typescript-node-express:PostgreSQL,TypeScript,Node.js和Express.js堆栈-源码","children":[{"title":"backend-postgres-typescript-node-express-master","children":[{"title":".eslintrc <span style='color:#111;'> 506B </span>","children":null,"spread":false},{"title":"package.json <span style='color:#111;'> 2.01KB </span>","children":null,"spread":false},{"title":"ormconfig.ts <span style='color:#111;'> 586B </span>","children":null,"spread":false},{"title":".prettierrc <span style='color:#111;'> 107B </span>","children":null,"spread":false},{"title":"custom.d.ts <span style='color:#111;'> 980B </span>","children":null,"spread":false},{"title":"jest.config.js <span style='color:#111;'> 437B </span>","children":null,"spread":false},{"title":"LICENSE <span style='color:#111;'> 1.06KB </span>","children":null,"spread":false},{"title":"package-lock.json <span style='color:#111;'> 431.32KB </span>","children":null,"spread":false},{"title":".env.example <span style='color:#111;'> 285B </span>","children":null,"spread":false},{"title":"src","children":[{"title":"config","children":[{"title":"index.ts <span style='color:#111;'> 1.74KB </span>","children":null,"spread":false}],"spread":true},{"title":"__tests__","children":[{"title":"config","children":[{"title":"helpers.ts <span style='color:#111;'> 104B </span>","children":null,"spread":false},{"title":"database.ts <span style='color:#111;'> 137B </span>","children":null,"spread":false},{"title":"teardown.ts <span style='color:#111;'> 64B </span>","children":null,"spread":false},{"title":"setup.ts <span style='color:#111;'> 282B </span>","children":null,"spread":false}],"spread":true},{"title":"packages","children":[{"title":"database","children":[{"title":"models","children":[{"title":"user.test.ts <span style='color:#111;'> 457B </span>","children":null,"spread":false}],"spread":false},{"title":"helpers","children":[{"title":"withTimestamp.test.ts <span style='color:#111;'> 988B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"api","children":[{"title":"resources","children":[{"title":"users","children":[{"title":"controller.test.ts <span style='color:#111;'> 286B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"helpers","children":[{"title":"exceptions","children":[{"title":"badRequest.test.ts <span style='color:#111;'> 361B </span>","children":null,"spread":false},{"title":"APIException.test.ts <span style='color:#111;'> 752B </span>","children":null,"spread":false},{"title":"forbidden.test.ts <span style='color:#111;'> 342B </span>","children":null,"spread":false},{"title":"unauthorized.test.ts <span style='color:#111;'> 354B </span>","children":null,"spread":false},{"title":"invalidParameter.test.ts <span style='color:#111;'> 369B </span>","children":null,"spread":false},{"title":"notFound.test.ts <span style='color:#111;'> 339B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":"server.ts <span style='color:#111;'> 933B </span>","children":null,"spread":false},{"title":"packages","children":[{"title":"database","children":[{"title":"models","children":[{"title":"user.ts <span style='color:#111;'> 537B </span>","children":null,"spread":false}],"spread":false},{"title":"migrations","children":[{"title":"1582816030292-CreateDatabaseSchema.ts <span style='color:#111;'> 686B </span>","children":null,"spread":false},{"title":"1582755522303-SetDatabaseTimezoneToUTC.ts <span style='color:#111;'> 392B </span>","children":null,"spread":false},{"title":"1582755083935-InstallUUIDExtension.ts <span style='color:#111;'> 415B </span>","children":null,"spread":false},{"title":"1582815723334-InstallDatabaseAudit.ts <span style='color:#111;'> 449B </span>","children":null,"spread":false},{"title":"1582820170145-AddUsersTable.ts <span style='color:#111;'> 1.03KB </span>","children":null,"spread":false}],"spread":false},{"title":"index.ts <span style='color:#111;'> 395B </span>","children":null,"spread":false},{"title":"helpers","children":[{"title":"withTimestampsMigration.ts <span style='color:#111;'> 611B </span>","children":null,"spread":false},{"title":"installDatabaseAudit.ts <span style='color:#111;'> 11.67KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"api","children":[{"title":"resources","children":[{"title":"users","children":[{"title":"controller.ts <span style='color:#111;'> 726B </span>","children":null,"spread":false},{"title":"validation.ts <span style='color:#111;'> 114B </span>","children":null,"spread":false},{"title":"index.ts <span style='color:#111;'> 227B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"router.ts <span style='color:#111;'> 187B </span>","children":null,"spread":false},{"title":"helpers","children":[{"title":"exceptions","children":[{"title":"notFound.ts <span style='color:#111;'> 253B </span>","children":null,"spread":false},{"title":"invalidParameter.ts <span style='color:#111;'> 269B </span>","children":null,"spread":false},{"title":"unauthorized.ts <span style='color:#111;'> 263B </span>","children":null,"spread":false},{"title":"APIException.ts <span style='color:#111;'> 476B </span>","children":null,"spread":false},{"title":"forbidden.ts <span style='color:#111;'> 254B </span>","children":null,"spread":false},{"title":"index.ts <span style='color:#111;'> 259B </span>","children":null,"spread":false},{"title":"badRequest.ts <span style='color:#111;'> 273B </span>","children":null,"spread":false}],"spread":false},{"title":"logging","children":[{"title":"index.ts <span style='color:#111;'> 1.17KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"middlewares","children":[{"title":"validation.ts <span style='color:#111;'> 374B </span>","children":null,"spread":false},{"title":"error.ts <span style='color:#111;'> 1.65KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false},{"title":"index.ts <span style='color:#111;'> 725B </span>","children":null,"spread":false}],"spread":true},{"title":"tsconfig.json <span style='color:#111;'> 369B </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 103B </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 2.60KB </span>","children":null,"spread":false},{"title":"nodemon.json <span style='color:#111;'> 194B </span>","children":null,"spread":false}],"spread":false}],"spread":true}]