我尝试用打字稿写一些东西,可以在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);
这就是路由的制作方式。
我的目标是使用相同的方法,并生成一些最终代码,就像我的第一个例子。
答案 0 :(得分:0)
如果没有更多信息,我不知道ctx
或next()
应该是什么类型,但它可能是这样的:
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;
});