[英]Typescript export default always executing
作為 node js 的初學者,我無法解決以下問題。
import { createSchema, Type, typedModel } from "ts-mongoose";
const CompanySchema = createSchema(
{
companyName: Type.string({ required: true, unique: true })
},
{
timestamps: true
}
);
const Company = typedModel("Company", CompanySchema);
export { CompanySchema, Company };
這一切都很好,直到一點。 嘗試導入此文件時。
import {CompanySchema, Company} from "./Company";
它執行 typeModel 方法並按預期存儲模式。 但是,此文件 Company.ts 的任何其他導入都會再次重新運行此方法 typeModel。 然后失敗,因為我只能使用該名稱注冊一次架構。 我怎樣才能防止重新運行它並仍然可以訪問這個對象?
為了保持對 CompanySchema 和 Company 對象的訪問(因為它們稍后將在另一個模式中用作參考),對此的一般方法是什么?
我不知道 createSchema 和 typedModel 是什么(如果它們是您或貓鼬的一部分創建的函數,我使用過的貓鼬版本沒有這些函數)
...但我認為你不應該“createSchema”,而應該定義它。
例如
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// define schema
const messageSchema = Schema({
sender: { type: Schema.Types.ObjectId, ref: 'User' },
recipient: { type: Schema.Types.ObjectId, ref: 'User' },
createdAt: { type: Date, default: Date.now },
deletedAt: { type: Date, default: undefined },
readAt: { type: Date, default: undefined},
message: { type: String, maxlength: 5000 }
});
// create a model based on that schema
const Message = mongoose.model('Message', messageSchema);
// Export the message model ... not the schema
module.exports.Message = Message;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.