将Koa路由器和控制器拆分为多个文件

时间:2019-10-22 18:30:32

标签: typescript koa

我正在尝试拆分我的应用程序。 不幸的是,调用控制器不起作用。一旦注释掉控制器及其post方法,它便可以调用服务器。

route / image.ts

<bean class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close" id="dataSource">
    <property name="url" value="jdbc:postgresql://postgres:5432/" />
    <property name="username" value="postgres" />
    <property name="password" value="/vault/password" />
</bean>

controller / imageController.ts

const imageController = require('../controllers/imageController.ts')

module.exports = ({ router }) => {
  router
    .get('/image', ctx => {
      ctx.body = 'Image'
    })
    .post('/image', imageController.newImage)
}

错误

import { BaseContext } from 'koa'

export default class imageController {
  static newImage = (ctx: BaseContext) => {
    // return OK status code
    ctx.status = 200
    ctx.body = 'Test'
  }
}

1 个答案:

答案 0 :(得分:1)

您的错误提示您正在尝试运行没有打字稿的打字稿文件。 import { x } from 'y';行在您的node.js版本中无效,并且鉴于您要导入类型...打字稿将删除该行。

因此,请确保您运行tsc,并且运行.js文件,而不是.ts文件。