Nest.js 控制器路由添加后为什么无法访问?
刚用Nest.js写了个用户控制器,按文档写了@Get(‘/users’)路由,但访问路径一直报404。已经确认模块导入选项里加了UsersModule,启动日志也没错误提示,到底哪里漏了?
// users.controller.ts
import { Controller, Get } from '@nestjs/common';
@Controller('users')
export class UsersController {
@Get()
findAll() {
return 'test';
}
}
在AppModule里确实导入了:
@Module({ imports: [UsersModule] })
但访问localhost:3000/users就是得不到响应,路由好像没被注册进去
UsersModule有没有正确声明控制器。最常见的问题是
@Controller没有在UsersModule里被注册进去。你得确保在UsersModule的@Module装饰器里,把UsersController加到了controllers数组中。比如这样:
这是我自己的血泪教训,当时也是写了路由却一直 404,最后发现是忘了注册控制器。检查一下这个点,应该就能解决了。
另外再确认一下,
@Controller('users')和@Get()都是正确的,最终路径应该是/users,拼起来没错的话就八九不离十了。