ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Nest教程】Nest项目配置http和https

2021-02-25 09:54:30  阅读:239  来源: 互联网

标签:http Nest 文档 nestjs https import app


Nest项目设置http和https服务

一般,我们的项目如果不是有特别需要,是不会去考虑https的,但是在某些情况下,如,你打算把你的程序发布在微信上,就必须配置https,今天我们就结合前面的教程,配置https。证书用的是阿里云的免费证书。

1 证书

我之前申请的是阿里云的免费证书,但是现在我没有找到,有别家证书更好了。

【Nest教程】Nest项目配置http和https

然后下载证书

【Nest教程】Nest项目配置http和https

阿里提供了Tomcat、Apache、Nginx等,这里我们用的是Apache的,下载解压之后里面有三个文件

【Nest教程】Nest项目配置http和https

这里面三个文件都需要用到,我刚开始配置的时候,网上的教程都是写只配置两个,实际我在运行以后,发现并不能正常访问。

2 项目配置

我们只需要配置main.ts文件即可,内容如下:


import * as fs from 'fs';
import * as http from 'http';
import * as https from 'https';
import * as express from 'express';
import { NestFactory } from '@nestjs/core';
import { ValidationPipe } from '@nestjs/common';
import {
  NestExpressApplication,
  ExpressAdapter,
} from '@nestjs/platform-express';
import { AppModule } from './app.module';
// 过滤器
import { HttpExceptionFilter } from './filters/http-exception.filter';
// 自定义拦截器
import { TransformInterceptor } from './interceptor/transform.interceptor';
// api文档插件
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

const httpsOptions = {
  ca: fs.readFileSync('/opt/nestjs-api/src/ssl/nmwap.com_chain.crt'),
  key: fs.readFileSync('/opt/nestjs-api/src/ssl/nmwap.com.key'),
  cert: fs.readFileSync('/opt/nestjs-api/src/ssl/nmwap.com_public.crt'),
};

async function bootstrap() {
  const server = express();
  const app = await NestFactory.create(AppModule, new ExpressAdapter(server));
  app.useGlobalFilters(new HttpExceptionFilter());
  app.useGlobalInterceptors(new TransformInterceptor());
  app.useGlobalPipes(new ValidationPipe()); //开启一个全局验证管道
  const options = new DocumentBuilder()
    .setTitle('接口文档')
    .setDescription('系统接口文档') // 文档介绍
    .setVersion('1.0.0') // 文档版本
    .build();
  // 为了创建完整的文档(具有定义的HTTP路由),我们使用类的createDocument()方法SwaggerModule。此方法带有两个参数,分别是应用程序实例和基本Swagger选项。
  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('/api', app, document);
  await app.init();
  http.createServer(server).listen(3000);
  https.createServer(httpsOptions, server).listen(443);
}
bootstrap();

这里面是全部的,httpsOptions里面的文件路径是你项目证书的路径,我这里放在opt下,打算把项目部署到ubuntu上。


3 运行项目

如果不会部署,那简单,你的项目文件直接放到服务器上,然后build,用node运行下main.js,此种方式关闭窗口程序就会停止运行,所以只适合测试用。

然后访问接口地址。
【Nest教程】Nest项目配置http和https

标签:http,Nest,文档,nestjs,https,import,app
来源: https://blog.51cto.com/15057855/2636307

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有