{"id":624,"date":"2021-04-19T16:43:22","date_gmt":"2021-04-19T08:43:22","guid":{"rendered":"http:\/\/blog.viter.top\/?p=624"},"modified":"2021-05-06T09:32:48","modified_gmt":"2021-05-06T01:32:48","slug":"nestjs-%e4%b8%ad%e7%9a%84%e4%b8%ad%e9%97%b4%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/blog.viter.top\/index.php\/2021\/04\/19\/nestjs-%e4%b8%ad%e7%9a%84%e4%b8%ad%e9%97%b4%e4%bb%b6\/","title":{"rendered":"Nestjs \u4e2d\u7684\u4e2d\u95f4\u4ef6"},"content":{"rendered":"\n<p>\u4e00\u3001 \u5173\u4e8e Nextjs \u4e2d\u95f4\u4ef6<br>\u901a\u4fd7\u7684\u8bb2\uff1a\u4e2d\u95f4\u4ef6\u5c31\u662f\u5339\u914d\u8def\u7531\u4e4b\u524d\u6216\u8005\u5339\u914d\u8def\u7531\u5b8c\u6210\u505a\u7684\u4e00\u7cfb\u5217\u7684\u64cd\u4f5c\u3002\u4e2d\u95f4\u4ef6\u4e2d\u5982\u679c\u60f3\u5f80\u4e0b<br>\u5339\u914d\u7684\u8bdd\uff0c\u90a3\u4e48\u9700\u8981\u5199 next()<br>Nestjs \u7684\u4e2d\u95f4\u4ef6\u5b9e\u9645\u4e0a\u7b49\u4ef7\u4e8e express \u4e2d\u95f4\u4ef6\u3002 \u4e0b\u9762\u662f Express \u5b98\u65b9\u6587\u6863\u4e2d\u6240\u8ff0\u7684\u4e2d\u95f4\u4ef6\u529f<br>\u80fd\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>\u4e2d\u95f4\u4ef6\u51fd\u6570\u53ef\u4ee5\u6267\u884c\u4ee5\u4e0b\u4efb\u52a1:<\/p><cite>\u6267\u884c\u4efb\u4f55\u4ee3\u7801\u3002<br>\u5bf9\u8bf7\u6c42\u548c\u54cd\u5e94\u5bf9\u8c61\u8fdb\u884c\u66f4\u6539\u3002<br>\u7ed3\u675f\u8bf7\u6c42-\u54cd\u5e94\u5468\u671f\u3002<br>\u8c03\u7528\u5806\u6808\u4e2d\u7684\u4e0b\u4e00\u4e2a\u4e2d\u95f4\u4ef6\u51fd\u6570\u3002<br>\u5982\u679c\u5f53\u524d\u7684\u4e2d\u95f4\u4ef6\u51fd\u6570\u6ca1\u6709\u7ed3\u675f\u8bf7\u6c42-\u54cd\u5e94\u5468\u671f, \u5b83\u5fc5\u987b\u8c03\u7528 next() \u5c06\u63a7\u5236\u4f20\u9012\u7ed9\u4e0b\u4e00\u4e2a\u4e2d\u95f4<br>\u4ef6\u51fd\u6570\u3002\u5426\u5219, \u8bf7\u6c42\u5c06\u88ab\u6302\u8d77<\/cite><\/blockquote>\n\n\n\n<p>Nest \u4e2d\u95f4\u4ef6\u53ef\u4ee5\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u4e5f\u53ef\u4ee5\u662f\u4e00\u4e2a\u5e26\u6709 @Injectable() \u88c5\u9970\u5668\u7684\u7c7b<\/p>\n\n\n\n<p>\u4e8c\u3001 Nestjs \u4e2d\u521b\u5efa\u4f7f\u7528\u4e2d\u95f4\u4ef6<br>1\u3001\u521b\u5efa\u4e2d\u95f4\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nest g middleware init<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>import { Injectable, NestMiddleware } from '@nestjs\/common';\n@Injectable()\nexport class InitMiddleware implements NestMiddleware {\nuse(req: any, res: any, next: () =&gt; void) {\nconsole.log('init');\nnext();\n}\n}<\/code><\/pre>\n\n\n\n<p>2\u3001\u914d\u7f6e\u4e2d\u95f4\u4ef6<br>\u5728 app.module.ts \u4e2d\u7ee7\u627f NestModule \u7136\u540e\u914d\u7f6e\u4e2d\u95f4\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export class AppModule implements NestModule {\nconfigure(consumer: MiddlewareConsumer) {\nconsumer\n.apply(InitMiddleware)\n.forRoutes({ path: '*', method: RequestMethod.ALL })\n.apply(NewsMiddleware). forRoutes({ path: 'news', method: RequestMethod.ALL })\n.apply(UserMiddleware). forRoutes({ path: 'user', method: RequestMethod.GET },{ path: '', method:\nRequestMethod.GET });\n}\n}<\/code><\/pre>\n\n\n\n<p>\u4e09\u3001 \u591a\u4e2a\u4e2d\u95f4\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>consumer.apply(cors(), helmet(), logger).forRoutes(CatsController);<\/code><\/pre>\n\n\n\n<p>\u56db\u3001 \u51fd\u6570\u5f0f\u4e2d\u95f4\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export function logger(req, res, next) {\nconsole.log(`Request...`);\nnext();\n};<\/code><\/pre>\n\n\n\n<p>\u4e94\u3001 \u5168\u5c40\u4e2d\u95f4\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const app = await NestFactory.create(ApplicationModule);\napp.use(logger);\nawait app.listen(3000);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u4e2d\u95f4\u4ef6\u8bbe\u7f6e\u8de8\u57dfheader\u5934<\/p>\n\n\n\n<p>init.middleware.ts<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { Injectable, NestMiddleware } from '@nestjs\/common';\nimport { Response } from 'express'\n\n@Injectable()\nexport class InitMiddleware implements NestMiddleware {\n  use(req: any, res: Response, next: () =&gt; void) {\n    console.log(\"init\");\n    res.header('Access-Control-Allow-Origin', '*');\n\n&nbsp;  res.header('Access-Control-Allow-Methods', '*');\n&nbsp;  res.removeHeader('x-powered-by');\n    next();\n  }\n}\n<\/code><\/pre>\n\n\n\n<p>app.module.ts<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ helmet \u5b89\u5168\u8bbe\u7f6e\nconst helmet = require(\"helmet\");\n@Module({\n  imports: &#91;],\n  controllers: &#91;AppController, ArticleController],\n  providers: &#91;AppService, ArticleService],\n})\nexport class AppModule implements NestModule {\n  configure(consumer: MiddlewareConsumer) {\n    consumer\n      .apply(helmet(), InitMiddleware)\n      .forRoutes({ path: '*', method: RequestMethod.ALL })\n  }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001 \u5173\u4e8e Nextjs \u4e2d\u95f4\u4ef6\u901a\u4fd7\u7684\u8bb2\uff1a\u4e2d\u95f4\u4ef6\u5c31\u662f\u5339\u914d\u8def\u7531\u4e4b\u524d\u6216\u8005\u5339\u914d\u8def\u7531\u5b8c\u6210\u505a\u7684\u4e00\u7cfb\u5217\u7684\u64cd\u4f5c\u3002\u4e2d\u95f4\u4ef6\u4e2d\u5982\u679c\u60f3\u5f80\u4e0b\u5339\u914d\u7684\u8bdd\uff0c\u90a3\u4e48 &#8230;<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[16],"_links":{"self":[{"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/posts\/624"}],"collection":[{"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/comments?post=624"}],"version-history":[{"count":3,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/posts\/624\/revisions"}],"predecessor-version":[{"id":631,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/posts\/624\/revisions\/631"}],"wp:attachment":[{"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/media?parent=624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/categories?post=624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.viter.top\/index.php\/wp-json\/wp\/v2\/tags?post=624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}