ค้นหาเว็บไซต์

javascript - วิธีการส่งออกสคีมา mongoose โดยใช้ typescript?


ฉันได้สร้าง mongoose schema สำหรับ collection ผู้ใช้แล้ว ตอนนี้ฉันกำลังพยายามนำเข้าใน controller แต่ขึ้นข้อผิดพลาด no exported member 'User'. Did you mean 'IUser'? จะแก้ไขปัญหานี้อย่างไร?

ผู้ใช้.โมเดล.ts

import mongoose, { Schema } from 'mongoose';

export interface IUser extends mongoose.Document {
  firstName: string,
  lastName: string,
  userName: string 
  password: string 
}
 const UserSchema: Schema = new Schema({
    firstName: {
        type: String,
        required: true
      },
    lastName: {
        type: String,
        required: true
      },
   userName: {
    type: String,
    required: true
  },
   password: {
    type: String,
    required: true
  }
});

export default mongoose.model('User', UserSchema);

ผู้ใช้.controller.ts

import { Request, Response } from 'express';
import { User } from './user.model'

คำตอบ #1

สำหรับ Typescript:

export interface IUser extends mongoose.Document {
  name: string; 
  somethingElse?: number; 
};

export const UserSchema = new mongoose.Schema({
  name: {type:String, required: true},
  somethingElse: Number,
});

const User = mongoose.model<IUser>('User', UserSchema);
export default User;

คำตอบ #2

เมื่อพูดว่า export default ...;

เมื่อคุณต้องการนำเข้ามา ให้พิมพ์ว่า:

import User from "./user.model";

ประกาศ: ผู้ใช้สามารถเป็นอะไรก็ได้ เช่น MyUserSchema หรืออะไรก็ได้