创建Rest Api时如何调用Route中的Interface类

问题描述 投票:0回答:1

所以我有这样的界面

export interface AuthenticationService {
    signUp(email: string, password: string): Promise<void>;
    // login(email: string, password: string): Promise<string>;
  }

所以我这样实现服务,

import {AuthenticationService} from "../application/authentication_repository";

import * as admin from "firebase-admin";


export class AuthenticationServiceImpl implements AuthenticationService {
  async signUp(email: string, password: string): Promise<void> {
    const auth = admin.auth();
    const existingUser = await auth.createUser({
      email: email,
      password: password,
      emailVerified: false,
      disabled: false,
    });
    if (existingUser) {
      throw new Error("User already exists");
    }
  }

  // async login(email: string, password: string): Promise<string> {
  // }
}

我想在路由中使用接口,但我一直收到这样的错误

如何使用路由中的接口?

javascript typescript domain-driven-design ddd-repositories
1个回答
0
投票

我用

inversify

解决这个问题
app.post("/signup", async (req, res) => {
    try {
      const {email, password}: LoginRequest = req.body;
      if (password.toLowerCase() || !email) {
        return res.status(400).send({message: "Missing fields"});
      }
      // eslint-disable-next-line max-len
      const authService = container.get<AuthenticationService>("AuthenticationService");
      const uid= await authService.signUp(email, password);
      return res.status(200).send({uid});
    } catch (error) {
      return res.status(400).send(error);
    }
  }
© www.soinside.com 2019 - 2024. All rights reserved.