Loopbackjs 环回4:创建种子以在mySQL表中添加虚拟数据

Loopbackjs 环回4:创建种子以在mySQL表中添加虚拟数据,loopbackjs,Loopbackjs,我一直在寻找创建数据播种器的选项,以便在环回4应用程序中添加虚拟数据。然而,我在官方文件中找不到任何选择 我发现了几篇文章,但都提到了环回3,比如: 请向我指出这样做的文档 编辑: 根据建议,我在脚本文件夹中创建了start.js文件: require('babel-register')({ presets: ['es2015'] }) module.exports = require('./seed.js') 我已经复制了脚本,将其转换为seed.js文件中提到的JavaScr

我一直在寻找创建数据播种器的选项,以便在环回4应用程序中添加虚拟数据。然而,我在官方文件中找不到任何选择

我发现了几篇文章,但都提到了环回3,比如:

  • 请向我指出这样做的文档

    编辑:

    根据建议,我在脚本文件夹中创建了start.js文件:

    require('babel-register')({
        presets: ['es2015']
    })
    
    module.exports = require('./seed.js')
    
    我已经复制了脚本,将其转换为seed.js文件中提到的JavaScript。运行脚本时,出现以下错误:

    找不到模块模型和存储库


    虽然我键入了正确的路径。

    实际上,我是这样直接使用环回(这是typescript):

    import*作为“/users.json”中的用户;
    进口*作为“蓝鸟”的承诺;
    从'@loopback/repository'导入{Entity,defaultcrudepository};
    从“../src/application”导入{MyApplication};
    从“../src/models”导入{User};
    从“../src/repositories”导入{UserRepository};
    const app=新的MyApplication();
    异步函数loadByModel(项:T[],存储库$:DefaultCrudepository,类型:{new(it:Partial):T;}){
    log(type.toString());
    let repository=wait repository$;
    等待repository.deleteAll();
    wait Promise.map(项目,异步(项目:T)=>{
    试一试{
    返回等待存储库。创建((新类型(项目));
    }捕获(e){
    控制台日志(项目);
    }
    },{并发:50});
    }
    异步函数加载(){
    等待loadByModel(用户,等待app.getRepository(用户存储库),用户);
    }
    app.boot().then(异步()=>{
    等待加载();
    console.log('done');
    });
    
    实际上,我是这样直接使用环回操作的(这是typescript):

    import*作为“/users.json”中的用户;
    进口*作为“蓝鸟”的承诺;
    从'@loopback/repository'导入{Entity,defaultcrudepository};
    从“../src/application”导入{MyApplication};
    从“../src/models”导入{User};
    从“../src/repositories”导入{UserRepository};
    const app=新的MyApplication();
    异步函数loadByModel(项:T[],存储库$:DefaultCrudepository,类型:{new(it:Partial):T;}){
    log(type.toString());
    let repository=wait repository$;
    等待repository.deleteAll();
    wait Promise.map(项目,异步(项目:T)=>{
    试一试{
    返回等待存储库。创建((新类型(项目));
    }捕获(e){
    控制台日志(项目);
    }
    },{并发:50});
    }
    异步函数加载(){
    等待loadByModel(用户,等待app.getRepository(用户存储库),用户);
    }
    app.boot().then(异步()=>{
    等待加载();
    console.log('done');
    });
    
    我们使用了一个单独的库,将迁移和种子脚本保留在环回代码库之外。此外,因为juggler的db.migrate和db.update方法并不像文档中提到的那样100%准确

    我们使用了一个单独的库,将迁移和种子脚本保留在环回代码库之外。此外,因为juggler的db.migrate和db.update方法并不像文档中提到的那样100%准确

    谢谢你抽出时间。我面临运行此脚本的问题。如何运行这些迁移?您的错误是什么?如果您没有使用TypeScript,还应该将其转换为纯Javascript。当我运行js文件(如:
    node server/seed
    )时,即使我添加了正确的路径,也没有找到错误的用户模块。我已经准备好了巴贝尔。谢谢你的时间。我面临运行此脚本的问题。如何运行这些迁移?您的错误是什么?如果您没有使用TypeScript,还应该将其转换为纯Javascript。当我运行js文件(如:
    node server/seed
    )时,即使我添加了正确的路径,也没有找到错误的用户模块。我有巴别塔。
    import * as users from './users.json';
    
    import * as Promise from 'bluebird';
    import {Entity, DefaultCrudRepository} from '@loopback/repository';
    
    import {MyApplication} from '../src/application';
    import {User} from '../src/models';
    import {UserRepository} from '../src/repositories';
    
    const app = new MyApplication();
    
    async function loadByModel<T extends Entity, ID>(items: T[], repository$: DefaultCrudRepository<T,ID>, type:  { new(it: Partial<T>): T ;}){
        console.log(type.toString());
        let repository = await repository$;
        await repository.deleteAll();
        await Promise.map(items, async (item: T) => {
            try{
                return await repository.create((new type(item)));
            } catch(e){
                console.log(item);
            }
        }, {concurrency: 50});
    }
    
    async function load(){
        await loadByModel(users, await app.getRepository(UserRepository), User);
    }
    
    
    app.boot().then(async () => {
        await load();
        console.log('done');
    });