nest 记录 (一)

nest 记录 (一)

起步

中文文档地址 nest 版本 8.X https://docs.nestjs.cn/8

确保安装了nodejs 版本大于10.13.0
我用的是14.17.616.15.1 。通过
nvm 进行切换

非必要步骤

安装 @nestjs/cliyarn
不过我的文章里面会用到, 还是推荐安装一下的

构建新项目

1
2
3
nest new 项目名字

// example nest nest yuque

运行程序

1
yarn start:dev

为啥要加 dev 。来到 package.json ,
可以发现多了一个 --watch 的参数。
这个就是用来监听文件改动进行自动编译(类似与工程化前端的热更新)。nest
的具体原理好像也是 webpack 热更新。(这里打个疑问号, 我没有探究过)

1
{  "scripts": {    "start": "nest start",    "start:dev": "nest start --watch",  }}

项目运行在哪里, 打开 src/main.ts , 有这样一行代码

1
2
async function bootstrao() {
// some code await app.listen(3000) // nest 程序会运行在3000端口,和express框架很像有没有。 但是nest是个ioc容器, 底层框架可以使用express。 // Q: 什么是IOC // W: 目前我也没有搞明白}

如果 3000 端口被占用, 终端会报错,
你可以在app.listen那里重新写一个端口。 Webpack 项目可以自动换端口,
怎么实现的具体以后再研究

然后用浏览器或者 api 接口测试工具打开
http://localhost:3000 , 你就会看到 Hello World
,很兴奋有没有, 😥, 对于有开发经验的人来说没什么稀奇的。

那么这个 hello world 来自哪里呢? 通过搜索代码可以发现在
app.services.ts ,再一层层往上看。发现调用顺序如下

main.ts -> AppModule(app.module.ts) ->
AppController(app.controller.ts) -> AppService(app.service.ts)

好长一串啊。 他们说这叫 MVC 模式。

我不懂。

这篇文章就写到这里了, 后面的文章会详细的记录我的学习过程🍻