基于NestJS搭建node服务应用

NestJS

NestJS是一款用来搭建高效、易于扩展nodejs服务端应用的框架,它是基于typescript编写的,并且完全支持typescript(当然也可以使用纯js),同时还包含了面向对象、函数式编程、函数响应式编程的思想。
NestJS框架是基于express的封装,同时也直接将express的api提供给开发者使用,当然所有的基于express的第三方模块也可以使用。

初始化项目

初始化项目可以使用官方的脚手架:

$ npm i -g @nestjs/cli
$ nest new project-name

也可以直接clone官方提供的代码仓库(如果要使用js,就把其中的typescript-starter改为javascript-starter即可),注意start命令是不会监听代码变动的,需要添加"--watch"参数才可以

$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start

成功启动后,就可以在localhost:3000地址看到hello word了。同时在项目目录下面可以看到三个核心的文件:

  • app.controller.ts: 提供了基本的接口路由
  • app.module.ts: 应用的根模块
  • main.ts: 应用的入口文件,调用NestFactory核心函数,生成NestJS的应用实例
    如果之后要创建子模块的时候,controller和module也是最基本的组成文件

不使用NestJS-cli

当然也可以不使用NestJS官方的脚手架,自己搭建框架。下面介绍的是搭建一个基于typescript,底层使用express的 hello world项目所需要的最小包,后续扩张功能可以按需加载更多。
在dependencies里面只需要安装@nestjs/common@nestjs/core@nestjs/platform-express这三个包,devDependencies中安装@nestjs/testing用来编写测试。然后参考cli生成的controller、module、main文件,把代码写出来就可以了。

使用nodemon、ts-node启动本地开发应用

我们可以使用ts-node来编译并启动NestJS应用,找个库可以执行编译typescript,并运行编译后的js。安装好ts-node之后只需要:

node -r ts-node/register src/main.ts

这样就可以启动我们的NestJS应用了。另外如果在tsconfig.json配置文件中设置了paths参数,那么还需要另外安装一个tsconfig-paths包,并在命令里把参数加上:

node -r ts-node/register  -r tsconfig-paths/register -r dotenv/config src/main.ts

但如果需要监听代码改动后,重启项目,那么可以使用nodemon来监听并重启应用。安装nodemon完毕后,可以在项目根目录新建一个nodemon.json配置文件

{
  "watch": ["src/**/*.ts"],
  "ext": "ts",
  "ignore": ["**/*.test.ts"],
  "exec": "node -r ts-node/register  -r tsconfig-paths/register src/main.ts"
}

然后在命令行执行nodemon指令即可启动一个自动更新的开发环境应用了。

你可能感兴趣的:(基于NestJS搭建node服务应用)