打字稿:如何在javascript中生成这个

时间:2018-02-01 13:35:09

标签: typescript

我尝试用打字稿写一些东西,可以在javascript中得到这个结果。 它适用于NodeJS服务器,它与启动时导入的控制器一起使用

(这是Javascript结果,我的目标) 我怎么写这个?

'use strict';

module.exports.AuthLogin = async (ctx, next) => {


    await next();
};

编辑:----------

NodeJS的路由器加载函数带有一个文字。

/auth/login:
 post:
  tags:
  - "Auth"
  operationId: "authLoginPOST"
  ...

文档提供了javascript文件和函数名称的路径

case 'post':
     router.post(url, controller);

所以例如: url =标签 controller = operationId

  

router.post(“Auth”,authLoginPOST);

这就是路由的制作方式。

我的目标是使用相同的方法,并生成一些最终代码,就像我的第一个例子。

2 个答案:

答案 0 :(得分:0)

如果没有更多信息,我不知道ctxnext()应该是什么类型,但它可能是这样的:

interface Context { }

type Next = () => void;

export async function apiTest(ctx: Context, next: Next): Promise<void> {
    await next();
}

答案 1 :(得分:0)

在Typescript中,像这样的代码就像Koa风格的中间件一样:

WFLYCTL0186:   Services which failed to start:      service jboss.patching.manager: org.jboss.msc.service.StartException in service jboss.patching.manager: java.lang.IllegalStateException: Duplicate layer 'base'

除非您需要进行一些后期处理,否则无需使用import {Context} from 'koa'; export async function apiTest(context: Context, next: () => Promise<any>) => { context.status = 200; await next(); }); ,对于大多数路线,您可以使用更简单的路线:

next()

我还建议使用对象解构:

import {Context} from 'koa';

export async function apiTest(context: Context) => {
  context.status = 200;
});