Node后台学习笔记-毕设篇(旅游信息管理平台)
-
使用技术栈:Node + ts + nestjs + typeorm + MySQL
-
简介:
- 这是款具有上传下载、发布文章、评论、用户个人中心 的一款 旅游资源管理项目。
- 可对数据库进行操作
-
项目链接: github.com/donwenx
一、认识结构
src
|- app.controller.spec.ts // controller 测试文件
|- app.controller.ts // controller 路由和预处理
|- app.module.ts // module 为模块注册用
|- app.service.ts // service 逻辑
|- main.ts // 程序入口
module 模块
作用:程序运行时给模块处理依赖。
模块是用@Module()
装饰器注释的类。装饰@Module()
器提供Nest用于组织应用程序结构的元数据。
其属性描述:
属性 | 描述 |
---|---|
providers | 将由 Nest 注入器实例化的提供程序,并且至少可以在该模块中共享 |
controllers | 该模块中定义的必须实例化的控制器集 |
imports | 导入模块的列表,导出该模块所需的提供程序 |
exports | 该子集providers 由该模块提供,并且应该在导入该模块的其他模块中可用。您可以使用提供者本身或仅使用其令牌(provide 值) |
controller
处理请求,在经过 controller 调用 service 里的业务逻辑
service
作用:是真正处理业务逻辑的地方,所有的业务逻辑都会在这里处理。它可经过 module 引用其他模块的service,也可经过 module 暴露出去。
生成新模块
- 这是一个一个生成款 命令:
nest g controller students
nest g service students
nest g module students
自动生成目录结构
- 命令:(nest g resource admin)
- 链接:docs.nestjs.com/cli/overvie…
// 命令:
nest g resource admin
// nest g 类型 名称
// 生成的目录结构:
admin.controller.spec.ts
admin.controller.ts
admin.module.ts
admin.service.spec.ts
admin.service.ts
? What transport layer do you use? REST API
? Would you like to generate CRUD entry points? No
CREATE src/admin/admin.controller.ts (210 bytes)
CREATE src/admin/admin.controller.spec.ts (566 bytes)
CREATE src/admin/admin.module.ts (247 bytes)
CREATE src/admin/admin.service.ts (89 bytes)
CREATE src/admin/admin.service.spec.ts (453 bytes)
UPDATE package.json (2256 bytes)
UPDATE src/app.module.ts (1054 bytes)
然后我们新增一个 admin 的文件
- 执行结果1
- 页面新增一个文件
编写可访问内容
编写一个 get 请求,输出 hello world
// admin.controller.ts
// 发起一个get请求,输出hello world
@Get('')
async test() {
return 'hello world'
}
查看接口
// ✅
http://localhost:3000
// => hello world
执行成功界面