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