Роутер и контроллер сплит коа в нескольких файлах - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь разделить свое приложение. К сожалению, это не работает для вызова контроллера. Как только я закомментирую контроллер и метод post, он работает для вызова сервера.

route / image.ts

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

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

controller /imageController.ts

import { BaseContext } from 'koa'

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

Ошибка

Unexpected token {                                                                                                                                                                                                                                        11:44:42

  (function (exports, require, module, __filename, __dirname) { import { BaseContext } from 'koa'
  ^

  SyntaxError: Unexpected token {
  at new Script (vm.js:84:7)
  at createScript (vm.js:264:10)
  at Object.runInThisContext (vm.js:312:10)
  at Module._compile (internal/modules/cjs/loader.js:684:28)
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)
  at Module.load (internal/modules/cjs/loader.js:620:32)
  at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
  at Function.Module._load (internal/modules/cjs/loader.js:552:3)
  at Module.require (internal/modules/cjs/loader.js:657:17)
  at require (internal/modules/cjs/helpers.js:22:18)

1 Ответ

1 голос
/ 28 октября 2019

Ваша ошибка говорит о том, что вы пытаетесь запустить файлы машинописи без машинописи. Строка import { x } from 'y'; недопустима в вашей версии node.js, и, учитывая, что вы импортируете type ... typcript, удалил бы эту строку.

Поэтому убедитесь, что вы запустили tsc, и вы запустиливаши .js файлы, а не .ts файлы.

...