From c311cc4b30d911fc1b69f95ae61100543a730190 Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Thu, 20 Jun 2019 23:02:42 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E7=95=A5=E8=BF=87docker=E5=88=9B?= =?UTF-8?q?=E5=BB=BAmysql=EF=BC=8C=E7=9B=B4=E6=8E=A5=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E5=88=9B=E5=BB=BA=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1df8d98 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,2 @@ +version: '3' +# msyql 以及 web 管理界面直接用已经通过 docker-compose 创建的 8 版本的,就先不写了 \ No newline at end of file From efc209186959748e291850079093dbc28aee6ad1 Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Thu, 20 Jun 2019 23:02:59 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=EF=BC=9Ayarn=20add=20@nestjs/typeorm=20typeorm=20mysql=20--sav?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 13 ++- yarn.lock | 257 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 257 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 4d0eb94..72b13f9 100644 --- a/package.json +++ b/package.json @@ -22,10 +22,13 @@ "dependencies": { "@nestjs/common": "^6.0.0", "@nestjs/core": "^6.0.0", - "@nestjs/platform-express": "^6.0.0", + "@nestjs/platform-express": "^6.0.0", + "@nestjs/typeorm": "^6.1.2", + "mysql": "^2.17.1", "reflect-metadata": "^0.1.12", "rimraf": "^2.6.2", - "rxjs": "^6.3.3" + "rxjs": "^6.3.3", + "typeorm": "^0.2.18" }, "devDependencies": { "@nestjs/testing": "^6.0.0", @@ -46,7 +49,11 @@ "wait-on": "^3.2.0" }, "jest": { - "moduleFileExtensions": ["js", "json", "ts"], + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], "rootDir": "src", "testRegex": ".spec.ts$", "transform": { diff --git a/yarn.lock b/yarn.lock index 7de9c99..a968ae4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -56,6 +56,13 @@ dependencies: optional "0.1.4" +"@nestjs/typeorm@^6.1.2": + version "6.1.2" + resolved "https://registry.npm.taobao.org/@nestjs/typeorm/download/@nestjs/typeorm-6.1.2.tgz#a52b694c6ba976ceef101c72d1b731206a079709" + integrity sha1-pStpTGupds7vEBxy0bcxIGoHlwk= + dependencies: + uuid "3.3.2" + "@nuxtjs/opencollective@0.2.2": version "0.2.2" resolved "https://registry.npm.taobao.org/@nuxtjs/opencollective/download/@nuxtjs/opencollective-0.2.2.tgz#26a761ebf588cc92a422d7cee996a66bd6e2761e" @@ -228,6 +235,11 @@ ansi-regex@^3.0.0: resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc= + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -240,6 +252,11 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -248,6 +265,11 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +app-root-path@^2.0.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/app-root-path/download/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a" + integrity sha1-0N9KaC7kCCc1g9Q/b3npiSYkvJo= + append-field@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/append-field/download/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" @@ -565,6 +587,11 @@ balanced-match@^1.0.0: resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM= + base@^0.11.1: version "0.11.2" resolved "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -585,6 +612,11 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +bignumber.js@7.2.1: + version "7.2.1" + resolved "https://registry.npm.taobao.org/bignumber.js/download/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" + integrity sha1-gMBIdZ2CaACAfEv9Uh5Q7bulel8= + binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" @@ -683,6 +715,14 @@ buffer-from@1.x, buffer-from@^1.0.0: resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= +buffer@^5.1.0: + version "5.2.1" + resolved "https://registry.npm.taobao.org/buffer/download/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha1-3Vf6DxCaxZxgJHkETcp7iz0LcdY= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -748,7 +788,7 @@ caseless@~0.12.0: resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^1.1.3: +chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -759,7 +799,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= @@ -824,6 +864,17 @@ cli-color@1.4.0: memoizee "^0.4.14" timers-ext "^0.1.5" +cli-highlight@^2.0.0: + version "2.1.1" + resolved "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.1.tgz#2180223d51618b112f4509cf96e4a6c750b07e97" + integrity sha1-IYAiPVFhixEvRQnPluSmx1Cwfpc= + dependencies: + chalk "^2.3.0" + highlight.js "^9.6.0" + mz "^2.4.0" + parse5 "^4.0.0" + yargs "^13.0.0" + cliui@^4.0.0: version "4.1.0" resolved "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" @@ -833,6 +884,15 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U= + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + co@^4.6.0: version "4.6.0" resolved "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -1083,6 +1143,13 @@ debug@^3.1.0, debug@^3.2.6: dependencies: ms "^2.1.1" +debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= + dependencies: + ms "^2.1.1" + decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1208,6 +1275,11 @@ dot-prop@^4.1.0: dependencies: is-obj "^1.0.0" +dotenv@^6.2.0: + version "6.2.0" + resolved "https://registry.npm.taobao.org/dotenv/download/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha1-lBwEEFNdlCyL7PKNPzV9vZ1HYGQ= + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -1226,6 +1298,11 @@ ee-first@1.1.1: resolved "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY= + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -1548,6 +1625,11 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +figlet@^1.1.1: + version "1.2.3" + resolved "https://registry.npm.taobao.org/figlet/download/figlet-1.2.3.tgz#7d25df546f41fc411c2a8b88012d48d55de72129" + integrity sha1-fSXfVG9B/EEcKouIAS1I1V3nISk= + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -1725,6 +1807,11 @@ get-caller-file@^1.0.1: resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o= +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34= + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -1917,6 +2004,11 @@ has@^1.0.1, has@^1.0.3: dependencies: function-bind "^1.1.1" +highlight.js@^9.6.0: + version "9.15.8" + resolved "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.15.8.tgz#f344fda123f36f1a65490e932cf90569e4999971" + integrity sha1-80T9oSPzbxplSQ6TLPkFaeSZmXE= + hoek@5.x.x: version "5.0.4" resolved "https://registry.npm.taobao.org/hoek/download/hoek-5.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhoek%2Fdownload%2Fhoek-5.0.4.tgz#0f7fa270a1cafeb364a4b2ddfaa33f864e4157da" @@ -1974,6 +2066,11 @@ iconv-lite@0.4.24, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q= + ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/ignore-by-default/download/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" @@ -2778,7 +2875,7 @@ js-tokens@^3.0.2: resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@^3.13.0, js-yaml@^3.7.0: +js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.7.0: version "3.13.1" resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= @@ -3255,6 +3352,25 @@ multer@1.4.1: type-is "^1.6.4" xtend "^4.0.0" +mysql@^2.17.1: + version "2.17.1" + resolved "https://registry.npm.taobao.org/mysql/download/mysql-2.17.1.tgz#62bba4a039a9b2f73638cd1652ce50fc6f682899" + integrity sha1-YrukoDmpsvc2OM0WUs5Q/G9oKJk= + dependencies: + bignumber.js "7.2.1" + readable-stream "2.3.6" + safe-buffer "5.1.2" + sqlstring "2.3.1" + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI= + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + nan@^2.12.1: version "2.14.0" resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" @@ -3446,7 +3562,7 @@ oauth-sign@~0.9.0: resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= -object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -3553,7 +3669,7 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" -os-locale@^3.0.0: +os-locale@^3.0.0, os-locale@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1560274285880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" integrity sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo= @@ -3638,6 +3754,11 @@ package-json@^4.0.0: registry-url "^3.0.3" semver "^5.1.0" +parent-require@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/parent-require/download/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" + integrity sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc= + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -3663,7 +3784,7 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse5@4.0.0: +parse5@4.0.0, parse5@^4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha1-bXhlbj2o14tOwLkG98CO8d/j9gg= @@ -3940,7 +4061,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: +readable-stream@2.3.6, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5: version "2.3.6" resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8= @@ -3969,7 +4090,7 @@ realpath-native@^1.0.0: dependencies: util.promisify "^1.0.0" -reflect-metadata@^0.1.12: +reflect-metadata@^0.1.12, reflect-metadata@^0.1.13: version "0.1.13" resolved "https://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag= @@ -4083,6 +4204,11 @@ require-main-filename@^1.0.1: resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs= + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -4174,7 +4300,7 @@ sane@^2.0.0: optionalDependencies: fsevents "^1.2.3" -sax@^1.2.4: +sax@>=0.6.0, sax@^1.2.4: version "1.2.4" resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= @@ -4396,6 +4522,11 @@ sprintf-js@~1.0.2: resolved "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sqlstring@2.3.1: + version "2.3.1" + resolved "https://registry.npm.taobao.org/sqlstring/download/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40" + integrity sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A= + sshpk@^1.7.0: version "1.16.1" resolved "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" @@ -4464,6 +4595,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha1-InZ74htirxCBV0MG9prFG2IgOWE= + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -4490,6 +4630,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4= + dependencies: + ansi-regex "^4.1.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -4598,6 +4745,20 @@ test-exclude@^4.2.1: read-pkg-up "^1.0.1" require-main-filename "^1.0.1" +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.npm.taobao.org/thenify/download/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + dependencies: + any-promise "^1.0.0" + throat@^4.0.0: version "4.1.0" resolved "https://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" @@ -4808,6 +4969,26 @@ typedarray@^0.0.6: resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typeorm@^0.2.18: + version "0.2.18" + resolved "https://registry.npm.taobao.org/typeorm/download/typeorm-0.2.18.tgz#8ae1d21104117724af41ddc11035c40a705e1de8" + integrity sha1-iuHSEQQRdySvQd3BEDXECnBeHeg= + dependencies: + app-root-path "^2.0.1" + buffer "^5.1.0" + chalk "^2.4.2" + cli-highlight "^2.0.0" + debug "^4.1.1" + dotenv "^6.2.0" + glob "^7.1.2" + js-yaml "^3.13.1" + mkdirp "^0.5.1" + reflect-metadata "^0.1.13" + tslib "^1.9.0" + xml2js "^0.4.17" + yargonaut "^1.1.2" + yargs "^13.2.1" + typescript@3.4.3: version "3.4.3" resolved "https://registry.npm.taobao.org/typescript/download/typescript-3.4.3.tgz#0eb320e4ace9b10eadf5bc6103286b0f8b7c224f" @@ -5065,6 +5246,15 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha1-H9H2cjXVttD+54EFYAG/tpTAOwk= + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -5096,6 +5286,19 @@ xml-name-validator@^3.0.0: resolved "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo= +xml2js@^0.4.17: + version "0.4.19" + resolved "https://registry.npm.taobao.org/xml2js/download/xml2js-0.4.19.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxml2js%2Fdownload%2Fxml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + integrity sha1-aGwg8hMgnpSr8NG88e+qKRx4J6c= + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xmlbuilder@~9.0.1: + version "9.0.7" + resolved "https://registry.npm.taobao.org/xmlbuilder/download/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" + integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + xtend@^4.0.0: version "4.0.1" resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -5106,7 +5309,7 @@ y18n@^3.2.1: resolved "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= -"y18n@^3.2.1 || ^4.0.0": +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha1-le+U+F7MgdAHwmThkKEg8KPIVms= @@ -5121,6 +5324,15 @@ yallist@^3.0.0, yallist@^3.0.3: resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" integrity sha1-tLBJ4xS+VF486AIjbWzSLNkcPek= +yargonaut@^1.1.2: + version "1.1.4" + resolved "https://registry.npm.taobao.org/yargonaut/download/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" + integrity sha1-xk9WQyx0ZScSIfU/XMUXiQw9bgw= + dependencies: + chalk "^1.1.1" + figlet "^1.1.1" + parent-require "^1.0.0" + yargs-parser@10.x: version "10.1.0" resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-10.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" @@ -5136,6 +5348,14 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^13.1.0: + version "13.1.1" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha1-0mBYUyqgbTZf4JH2ofwGsvfl7KA= + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -5179,6 +5399,23 @@ yargs@^12.0.1: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" +yargs@^13.0.0, yargs@^13.2.1: + version "13.2.4" + resolved "https://registry.npm.taobao.org/yargs/download/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + integrity sha1-C1YreUAW65ZRuYvTes82SqXW3IM= + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.0" + yn@^3.0.0: version "3.1.0" resolved "https://registry.npm.taobao.org/yn/download/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114" From 833274304f84c1755a336ee812270c6b146f4b0e Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 21:21:08 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.module.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/app.module.ts b/src/app.module.ts index 8662803..75987c4 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,9 +1,21 @@ import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; @Module({ - imports: [], + imports: [ + TypeOrmModule.forRoot({ + type: 'mysql', + host: 'localhost', + port: 3306, + username: 'root', + password: 'jeremy', + database: 'nest', + synchronize: true, + entities: [__dirname + '/**/*.entity{.ts,.js}'], + }), + ], controllers: [AppController], providers: [AppService], }) From 770c7dbd79b6fc27b2035b8f50470d2fbe5bf7a8 Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 21:22:08 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E6=96=B0=E5=BB=BApost=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.module.ts | 2 ++ src/modules/post/post.module.ts | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 src/modules/post/post.module.ts diff --git a/src/app.module.ts b/src/app.module.ts index 75987c4..bfa6dec 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -2,6 +2,7 @@ import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { TypeOrmModule } from '@nestjs/typeorm'; +import { PostModule } from './modules/post/post.module'; @Module({ imports: [ @@ -15,6 +16,7 @@ import { TypeOrmModule } from '@nestjs/typeorm'; synchronize: true, entities: [__dirname + '/**/*.entity{.ts,.js}'], }), + PostModule, ], controllers: [AppController], providers: [AppService], diff --git a/src/modules/post/post.module.ts b/src/modules/post/post.module.ts new file mode 100644 index 0000000..b9a733f --- /dev/null +++ b/src/modules/post/post.module.ts @@ -0,0 +1,4 @@ +import { Module } from '@nestjs/common'; + +@Module({}) +export class PostModule {} From 1f12ad7557240eb5134c9253a8e0ee9bd78f681a Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 21:24:50 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E6=96=B0=E5=BB=BApost=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/post/post.controller.spec.ts | 18 ++++++++++++++++++ src/modules/post/post.controller.ts | 4 ++++ src/modules/post/post.module.ts | 5 ++++- 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/modules/post/post.controller.spec.ts create mode 100644 src/modules/post/post.controller.ts diff --git a/src/modules/post/post.controller.spec.ts b/src/modules/post/post.controller.spec.ts new file mode 100644 index 0000000..a669429 --- /dev/null +++ b/src/modules/post/post.controller.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { PostController } from './post.controller'; + +describe('Post Controller', () => { + let controller: PostController; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + controllers: [PostController], + }).compile(); + + controller = module.get(PostController); + }); + + it('should be defined', () => { + expect(controller).toBeDefined(); + }); +}); diff --git a/src/modules/post/post.controller.ts b/src/modules/post/post.controller.ts new file mode 100644 index 0000000..2c90f16 --- /dev/null +++ b/src/modules/post/post.controller.ts @@ -0,0 +1,4 @@ +import { Controller } from '@nestjs/common'; + +@Controller('post') +export class PostController {} diff --git a/src/modules/post/post.module.ts b/src/modules/post/post.module.ts index b9a733f..d2323c5 100644 --- a/src/modules/post/post.module.ts +++ b/src/modules/post/post.module.ts @@ -1,4 +1,7 @@ import { Module } from '@nestjs/common'; +import { PostController } from './post.controller'; -@Module({}) +@Module({ + controllers: [PostController] +}) export class PostModule {} From 8bbd89497682a44133bcabbb578b19d407dbccd7 Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 21:26:40 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E5=A2=9E=E5=8A=A0post=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/post/post.module.ts | 4 +++- src/modules/post/post.service.spec.ts | 18 ++++++++++++++++++ src/modules/post/post.service.ts | 4 ++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/modules/post/post.service.spec.ts create mode 100644 src/modules/post/post.service.ts diff --git a/src/modules/post/post.module.ts b/src/modules/post/post.module.ts index d2323c5..af735ef 100644 --- a/src/modules/post/post.module.ts +++ b/src/modules/post/post.module.ts @@ -1,7 +1,9 @@ import { Module } from '@nestjs/common'; import { PostController } from './post.controller'; +import { PostService } from './post.service'; @Module({ - controllers: [PostController] + controllers: [PostController], + providers: [PostService] }) export class PostModule {} diff --git a/src/modules/post/post.service.spec.ts b/src/modules/post/post.service.spec.ts new file mode 100644 index 0000000..7769284 --- /dev/null +++ b/src/modules/post/post.service.spec.ts @@ -0,0 +1,18 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { PostService } from './post.service'; + +describe('PostService', () => { + let service: PostService; + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [PostService], + }).compile(); + + service = module.get(PostService); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); +}); diff --git a/src/modules/post/post.service.ts b/src/modules/post/post.service.ts new file mode 100644 index 0000000..1e36a92 --- /dev/null +++ b/src/modules/post/post.service.ts @@ -0,0 +1,4 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class PostService {} From 2d8abb673cbe425096cc6bf89bc973f9badafc42 Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 21:26:54 +0800 Subject: [PATCH 07/13] =?UTF-8?q?post=E8=B7=AF=E7=94=B1=E6=94=B9=E4=B8=BAp?= =?UTF-8?q?osts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/post/post.controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/post/post.controller.ts b/src/modules/post/post.controller.ts index 2c90f16..5ef33dd 100644 --- a/src/modules/post/post.controller.ts +++ b/src/modules/post/post.controller.ts @@ -1,4 +1,4 @@ import { Controller } from '@nestjs/common'; -@Controller('post') +@Controller('posts') export class PostController {} From 2bc88e75a6134636b862efa0fd748d585ce0747c Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 21:55:29 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E5=8A=A0=E5=85=A5env=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=B5=8B=E8=AF=95env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 11 +++++++++++ .env.example | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 .env create mode 100644 .env.example diff --git a/.env b/.env new file mode 100644 index 0000000..ac34763 --- /dev/null +++ b/.env @@ -0,0 +1,11 @@ +# TypeORM + +TYPEORM_CONNECTION=mysql +TYPEORM_HOST=localhost +TYPEORM_PORT=3306 +TYPEORM_USERNAME=root +TYPEORM_PASSWORD=jeremy +TYPEORM_DATABASE=nest +TYPEORM_SYNCHRONIZE=true +TYPEORM_LOGGING=true +TYPEORM_ENTITIES=./src/**/*.entity{.ts,.js} diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..ac34763 --- /dev/null +++ b/.env.example @@ -0,0 +1,11 @@ +# TypeORM + +TYPEORM_CONNECTION=mysql +TYPEORM_HOST=localhost +TYPEORM_PORT=3306 +TYPEORM_USERNAME=root +TYPEORM_PASSWORD=jeremy +TYPEORM_DATABASE=nest +TYPEORM_SYNCHRONIZE=true +TYPEORM_LOGGING=true +TYPEORM_ENTITIES=./src/**/*.entity{.ts,.js} From 0bbcd2f8d12dbf52b9eb6536af7c0d912a20224b Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 21:55:53 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E5=BF=BD=E7=95=A5env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index c16ef02..92d0a25 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,9 @@ /dist /node_modules +# env +.env + # Logs logs *.log From 4c3ae2394a5aec4fa12441254266f79d5897b684 Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 21:58:58 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E5=88=A0=E9=99=A4env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 .env diff --git a/.env b/.env deleted file mode 100644 index ac34763..0000000 --- a/.env +++ /dev/null @@ -1,11 +0,0 @@ -# TypeORM - -TYPEORM_CONNECTION=mysql -TYPEORM_HOST=localhost -TYPEORM_PORT=3306 -TYPEORM_USERNAME=root -TYPEORM_PASSWORD=jeremy -TYPEORM_DATABASE=nest -TYPEORM_SYNCHRONIZE=true -TYPEORM_LOGGING=true -TYPEORM_ENTITIES=./src/**/*.entity{.ts,.js} From 359b7c95335a77269c67c3ddeef9a806d17d2840 Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Wed, 26 Jun 2019 22:01:00 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E5=BB=BA=E7=AB=8Bpost=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AE=9E=E4=BD=93=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=BC=9A=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84=E5=AD=97=E6=AE=B5=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/post/post.entity.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/modules/post/post.entity.ts diff --git a/src/modules/post/post.entity.ts b/src/modules/post/post.entity.ts new file mode 100644 index 0000000..8ca7bca --- /dev/null +++ b/src/modules/post/post.entity.ts @@ -0,0 +1,19 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn} from 'typeorm'; + +@Entity() +export class Post { + @PrimaryGeneratedColumn() + id: number; + + @Column() + title: string; + + @Column('longtext') + body: string; + + @CreateDateColumn() + created: Date; + + @UpdateDateColumn() + updated: Date; +} \ No newline at end of file From 607d3d86be4fc41c5f1f15d30a290ed7d29c7cea Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Thu, 27 Jun 2019 22:22:50 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E7=8E=B0=E5=9C=A8=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=9E=E4=BD=93=E6=95=B0=E6=8D=AE=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/post/post.controller.ts | 14 ++++++++++++-- src/modules/post/post.module.ts | 7 ++++++- src/modules/post/post.service.ts | 15 ++++++++++++++- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/modules/post/post.controller.ts b/src/modules/post/post.controller.ts index 5ef33dd..51bebea 100644 --- a/src/modules/post/post.controller.ts +++ b/src/modules/post/post.controller.ts @@ -1,4 +1,14 @@ -import { Controller } from '@nestjs/common'; +import { Controller, Post, Body } from '@nestjs/common'; +import { PostService } from './post.service'; @Controller('posts') -export class PostController {} +export class PostController { + constructor( + private readonly postService: PostService, + ) { } + + @Post() + async store(@Body() data) { + return await this.postService.store(data); + } +} diff --git a/src/modules/post/post.module.ts b/src/modules/post/post.module.ts index af735ef..a43b068 100644 --- a/src/modules/post/post.module.ts +++ b/src/modules/post/post.module.ts @@ -1,9 +1,14 @@ import { Module } from '@nestjs/common'; import { PostController } from './post.controller'; import { PostService } from './post.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { Post } from './post.entity'; @Module({ + imports: [ + TypeOrmModule.forFeature([Post]), + ], controllers: [PostController], - providers: [PostService] + providers: [PostService], }) export class PostModule {} diff --git a/src/modules/post/post.service.ts b/src/modules/post/post.service.ts index 1e36a92..8a4d974 100644 --- a/src/modules/post/post.service.ts +++ b/src/modules/post/post.service.ts @@ -1,4 +1,17 @@ import { Injectable } from '@nestjs/common'; +import { Repository } from 'typeorm'; +import { Post } from './post.entity'; +import { InjectRepository } from '@nestjs/typeorm'; @Injectable() -export class PostService {} +export class PostService { + constructor( + @InjectRepository(Post) + private readonly postRepository: Repository, + ) { } + + async store(data) { + const entity = await this.postRepository.create(data); + return await this.postRepository.save(entity); + } +} From 234b2984a6dacd43d2e167846e1bd4f2c22fcdf6 Mon Sep 17 00:00:00 2001 From: Jeremy Yin Date: Thu, 27 Jun 2019 23:08:36 +0800 Subject: [PATCH 13/13] =?UTF-8?q?post=20entity=E7=9A=84=E5=A2=9E=E5=88=A0?= =?UTF-8?q?=E6=94=B9=E6=9F=A5=EF=BC=8C=E8=B7=AF=E7=94=B1=E6=89=BE=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=EF=BC=8C=E6=9C=8D=E5=8A=A1=E6=89=BE=E5=BA=93=EF=BC=8C?= =?UTF-8?q?=E5=BA=93=E7=BB=91=E5=AE=9A=E5=AE=9E=E4=BD=93=E5=B9=B6=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=96=B9=E6=B3=95=EF=BC=9B=E5=A2=9E=E5=8A=A0dto?= =?UTF-8?q?=E6=8F=90=E4=BE=9B=E6=8F=90=E4=BA=A4=E6=95=B0=E6=8D=AE=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/post/post.controller.ts | 25 +++++++++++++++++++++++-- src/modules/post/post.dto.ts | 4 ++++ src/modules/post/post.entity.ts | 2 +- src/modules/post/post.service.ts | 23 ++++++++++++++++++++++- 4 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/modules/post/post.dto.ts diff --git a/src/modules/post/post.controller.ts b/src/modules/post/post.controller.ts index 51bebea..846493a 100644 --- a/src/modules/post/post.controller.ts +++ b/src/modules/post/post.controller.ts @@ -1,5 +1,6 @@ -import { Controller, Post, Body } from '@nestjs/common'; +import { Controller, Post, Body, Get, Param, Put, Delete } from '@nestjs/common'; import { PostService } from './post.service'; +import { PostDto } from './post.dto'; @Controller('posts') export class PostController { @@ -8,7 +9,27 @@ export class PostController { ) { } @Post() - async store(@Body() data) { + async store(@Body() data: PostDto) { return await this.postService.store(data); } + + @Get() + async index() { + return await this.postService.index(); + } + + @Get(':id') + async show(@Param() id: string) { + return await this.postService.show(id); + } + + @Put(':id') + async update(@Param() id: string, @Body() data: Partial) { + return await this.postService.update(id, data); + } + + @Delete(':id') + async destroy(@Param() id: string) { + return await this.postService.destroy(id); + } } diff --git a/src/modules/post/post.dto.ts b/src/modules/post/post.dto.ts new file mode 100644 index 0000000..87eb738 --- /dev/null +++ b/src/modules/post/post.dto.ts @@ -0,0 +1,4 @@ +export class PostDto { + readonly title: string; + readonly body: string; +} \ No newline at end of file diff --git a/src/modules/post/post.entity.ts b/src/modules/post/post.entity.ts index 8ca7bca..381ee46 100644 --- a/src/modules/post/post.entity.ts +++ b/src/modules/post/post.entity.ts @@ -8,7 +8,7 @@ export class Post { @Column() title: string; - @Column('longtext') + @Column('longtext', {nullable: true}) body: string; @CreateDateColumn() diff --git a/src/modules/post/post.service.ts b/src/modules/post/post.service.ts index 8a4d974..610787b 100644 --- a/src/modules/post/post.service.ts +++ b/src/modules/post/post.service.ts @@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common'; import { Repository } from 'typeorm'; import { Post } from './post.entity'; import { InjectRepository } from '@nestjs/typeorm'; +import { PostDto } from './post.dto'; @Injectable() export class PostService { @@ -10,8 +11,28 @@ export class PostService { private readonly postRepository: Repository, ) { } - async store(data) { + async store(data: PostDto) { const entity = await this.postRepository.create(data); return await this.postRepository.save(entity); } + + async index() { + const entities = await this.postRepository.find(); + return entities; + } + + async show(id: string) { + const entity = await this.postRepository.findOne(id); + return entity; + } + + async update(id: string, data: Partial) { + const result = await this.postRepository.update(id, data); + return result; + } + + async destroy(id: string) { + const result = await this.postRepository.delete(id); + return result; + } }