웹사이트 검색
koa-body 타입 정의를 어떻게 재정의할 수 있나요? koa-body는 다음과 같은 타입 정의를 가지고 있습니다:
declare module "koa" { interface Request { body: any; } interface Context { body: any; } }저는 이런 식으로 덮어쓰고 싶습니다 (파일 index.d.ts):
import { Files } from 'formidable' interface IBody { files: Files } declare module "koa" { interface Request { body: IBody } interface Context { body: IBody } } 더 많은 것을 읽으십시오 →저는 Koa와 함께 Typescript를 사용하고 있습니다. 누군가 자동으로 API 문서를 생성하는 방법을 알려줄 수 있나요(수동으로 하는 것이 아니라)? 저는 tsoa (https://www.npmjs.com/package/tsoa)라는 패키지를 봤지만, 제 routes에 대한 간단한 API 문서만 원하기 때문에 컨트롤러를 만들고 싶지 않습니다.
더 많은 것을 읽으십시오 →
저는 TypeScript와 Koa 2를 사용하여 앱을 작성하고 있습니다.
하지만 제가 겪고 있는 문제는 제 전역 Koa 에러 핸들러가 제 애플리케이션에서 발생한 에러를 잡지 못한다는 것입니다.
예를 들어 다음 미들웨어를 보세요(이것은 어떤 경로가 로드되기 전의 가장 첫 번째 미들웨어입니다):
app.use(async(ctx, next) => { console.log("ErrorHandler loaded..."); try { 더 많은 것을 읽으십시오 →저는 Koa.JS를 사용하여 개발된 웹 애플리케이션을 가지고 있습니다. 이 애플리케이션을 Azure 클라우드 함수와 AWS Lambda 모두에 배포하고 싶습니다. 그래서 서버 관련 유지보수가 필요 없고, 특정 클라우드 벤더에 종속되지 않기를 원합니다.
어떤 프레임워크든 이러한 요구 사항을 지원할 수 있나요?
이것은 제가 받은 웹 애플리케이션입니다.
index.ts
const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000);어떤 프레임워크든 이러한 요구 사항을 지원할 수 있나요?
Express
더 많은 것을 읽으십시오 →
저는 라우터를 용도별로 나누기로 결정했으므로, 이렇게 보입니다:
라우터/홈라우터.ts
import * as Router from 'koa-router'; const router: Router = new Router(); router .get('/', async (ctx, next) => { ctx.body = 'hello world'; }); export = router;라우터/사용자라우터.ts
더 많은 것을 읽으십시오 →
저는 Typescript 초보이고 koa-router와 koa-passport를 통합하려고 하고 있습니다. 모든 @types\를 설치했습니다
import Koa from "koa"; import Route from "koa-router"; import passport from "koa-passport"; import session from "koa-session"; const app = new Koa(); const router = new Route(); app.keys = [pr 더 많은 것을 읽으십시오 →
부분적으로 해결됨:
깃허브에 이 문제가 조금 설명된 오래된 이슈가 있습니다. 전역 범위에서 모듈을 선언하면 전체 내보낸 모듈의 타입이 다시 작성됩니다. 모듈 안에 모듈을 선언하면 병합됩니다. 왜 그런지 저는 모르겠습니다
https://github.com/microsoft/TypeScript/issues/17736#issuecomment-344353174
인터페이스 병합을 통해
더 많은 것을 읽으십시오 →저는 koa를 위한 제 컨텍스트와 상태를 정의하기 위해 다음 인터페이스들을 사용하고 있습니다:
export interface AppState extends Koa.DefaultState { //... } export interface AppContext extends Koa.DefaultContext { models: DomainModels; connection: Connection; }그런 다음 Koa를 다음과 같이 인스턴스화합니다:
const app = new Koa<AppState, AppContext>(); app.use(session(sessionConfig, app));문제는 koa-session의 타입이 선언 병합을 사용하고 있으며 다음과 같은 오류를 발생시키고 있다는 것입니다:
Argument of type 더 많은 것을 읽으십시오 →
저는 가지고 놀기 위한 아주 간단한 서버가 있습니다:
import * as http from 'http'; import * as Koa from "koa"; import { Request, Response, Context } from "koa"; import * as Router from "koa-router"; import * as bodyParser from "koa-bodyparser"; const HTTPPORT = 3000; var app: 더 많은 것을 읽으십시오 →
저는 Typescript에서 Koa2와 함께 Facebook의 DataLoader를 사용하고 싶습니다. 각 요청별 데이터베이스 연결에 맞춰 각 요청별 DataLoader 인스턴스를 사용하고 싶습니다. 이것을 가장 잘 구현하는 방법은 무엇입니까?
현재 내 접근 방식은 Koa2 컨텍스트를 확장하는 것이지만, 타입 정의를 어떻게 수정해야 할지 몰라 실패하고 있습니다.
여기 제가 시도한 모듈 확장이 있습니다...
import 'koa'; declare module 'koa' { namespace Applicatio 더 많은 것을 읽으십시오 →