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
指令即可启动一个自动更新的开发环境应用了。
网友评论