达什多特工厂
任何持久性的简单工厂实施.
使用量
在您的节点项目目录中, 运行如下 :
npm i --save @dashdot/factory
或与雅尔曰:
yarn add @dashdot/factory
API 密码
import faker from 'faker'
import Factory from '@dashdot/factory'
import { Post, User } from './models'
class MongoFactory extends Factory {
static async persist(records) {
const docs = await this.Model.insertMany(records)
return docs.map((doc) => doc.toObject({
virtuals: true,
getters: true
}))
}
}
class PostFactory extends MongoFactory {
static get Model() {
return Post
}
static make() {
return {
title: faker.name.title(),
content: faker.lorem.paragraphs(),
}
}
}
class UserFactory extends MongoFactory {
static get Model() {
return User
}
static make() {
return {
name: faker.name.firstName(),
email: faker.unique(faker.internet.email),
}
}
createPosts(records, states, data) {
return PostFactory.create(records, states, {
...data,
user: this.id,
})
}
}
const [user] = await UserFactory.create(1)
const posts = await user.createPosts(4)