在多个文件中拆分 Koa 路由器和控制器
Split Koa router and controller in multiple files
我正在尝试拆分我的应用程序。
不幸的是,调用控制器不起作用。一旦我注释掉控制器和 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)
您的错误表明您正在尝试 运行 您的打字稿文件 没有 打字稿。 import { x } from 'y';
行在您的 node.js 版本中无效,并且假设您正在导入类型...打字稿会删除该行。
因此请确保您 运行 tsc
和 运行 您的 .js
文件,而不是 .ts
文件。
我正在尝试拆分我的应用程序。 不幸的是,调用控制器不起作用。一旦我注释掉控制器和 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)
您的错误表明您正在尝试 运行 您的打字稿文件 没有 打字稿。 import { x } from 'y';
行在您的 node.js 版本中无效,并且假设您正在导入类型...打字稿会删除该行。
因此请确保您 运行 tsc
和 运行 您的 .js
文件,而不是 .ts
文件。