Nest JS无法读取未定义的属性

时间:2020-02-20 01:18:51

标签: javascript typescript api swagger undefined

我的应用程序运行良好,尝试用招摇的方式获取文档后停止运行,我认为这可能是一个依赖性问题,但在任何地方都找不到。

我不断收到错误

10:10:22 PM-在监视模式下开始编译...

错误无法读取未定义的属性'getSymbol'

我不知道在哪里使用getSymbol,而且该错误似乎并没有太大帮助。希望有人可以帮助我解决此问题。完整的应用程序代码可以在以下位置找到:

https://github.com/JSLearningCode/enderecosAlunosAPI

欢迎任何帮助。

编辑: 在开发人员模式下运行,我得到以下输出:

/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/typescript/lib/typescript.js:95877 抛出e; ^

TypeError:无法读取未定义的属性'getSymbol' 在Object.isArray(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/@nestjs/swagger/dist/plugin/utils/ast-utils.js:6:25) 在getTypeReferenceAsString(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/@nestjs/swagger/dist/plugin/utils/plugin-utils.js:12:21) 在Object.getTypeReferenceAsString(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/@nestjs/swagger/dist/plugin/utils/plugin-utils.js:31:29) 在ControllerClassVisitor.createTypePropertyAssignment(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/@nestjs/swagger/dist/plugin/visitors/controller-class.visitor.js:51:44) 在ControllerClassVisitor.createDecoratorObjectLiteralExpr(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/@nestjs/swagger/dist/plugin/visitors/controller-class.visitor.js:38:18) 在ControllerClassVisitor.addDecoratorToNode(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/@nestjs/swagger/dist/plugin/visitors/controller-class.visitor.js:29:22) 在visitNode上(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/@nestjs/swagger/dist/plugin/visitors/controller-class.visitor.js:16:29) 在visitNodes上(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/typescript/lib/typescript.js:70998:48) 在Object.visitEachChild(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/typescript/lib/typescript.js:71266:355) 在visitNode上(/home/william/Documentos/lemobs/enderecosAlunosAPI/node_modules/@nestjs/swagger/dist/plugin/visitors/controller-class.visitor.js:18:23) 错误命令失败,退出代码为1。

2 个答案:

答案 0 :(得分:0)

应用程序中存在与路由有关的问题。我在控制器内部有一个解析器,该解析器用于在第一个Param的路线“ aluno”之间定向正确的路线。 一旦我采用了没有参数的路由并将其放在控制器的第一位,就不再需要解析器了,问题就解决了。希望这个答案可以帮助更多的人,如果他们遇到同样的问题。

答案 1 :(得分:0)

请检查您控制器的方法结果类型

更改此:

@Contoller()
export class MyController {

// ...
  async myMethod() {
    return {}
  }
}

收件人:

@Contoller()
export class MyController {

// ...
  async myMethod():Promise<any> {
    return {}
  }
}