首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用faker.js为表添加外键

如何使用faker.js为表添加外键
EN

Stack Overflow用户
提问于 2019-09-27 12:38:35
回答 1查看 893关注 0票数 0

我正在尝试使用faker.js和knex创建一个包含外键的表。这两个表是“帐户”和“用户”。user表将accountid字段作为外键包含。现在,我可以在“帐户”表中添加种子,没有问题:

代码语言:javascript
运行
复制
const faker = require('faker');

function fakeAccount() {
  var account = {
    accountid: faker.random.number(),
    createdat: faker.date.recent(),
    updatedat: faker.date.recent()
  }
   return account;        
}

exports.seed = function(knex) {
  // Deletes ALL existing entries
  return knex('accounts').del()
    .then(function () {
      for (let i = 1; i< 10; i++) {
          fakeAccounts.push(fakeAccount());
      }

      // Inserts seed entries
      return knex('accounts').insert(fakeAccounts);
    });
};

当我试着播种“用户”时。我执行一个请求来获得帐户中的所有行,迭代并创建每个帐户id的四个用户,这是代码。这不是最漂亮的代码,但应该有效。问题是我的承诺还在等待中。从“帐户”获取所有记录的功能非常好:

代码语言:javascript
运行
复制
const faker = require('faker');
const db = require('../../accounts/accountdb.js');

async function returnsQueryBuilder() {
  return await db.find();
}


function userbatchfunc() {
  var userbatch = [];
  var fakerarray = [];
  var userarray = [];
  var queryArray = returnsQueryBuilder();
  console.log(queryArray)

  for (let i = 1; i < queryArray.length; i++) {
    for (let j = 1; j < 4; j++) {
    userbatch = {
        accountid : queryArray[j]['accountid'],
        image : faker.image.avatar(),
        firstName : faker.name.firstName(),
        lastName : faker.name.lastName(),
        email : faker.internet.email(),
        passwordhash : faker.random.number(),
        password: "password1234",
        telephone : faker.phone.phoneNumber(),
        telephone_ext : "",
        registrationDate : faker.date.recent(),
        inactive : "true",
        allowogin : "true" 
      }
      fakerarray = fakerarray.push(userbatch);
    }
    userarray = userarray.push(fakerarray);  
  }  
  return userarray;
}



exports.seed = function(knex) {
  // Deletes ALL existing entries
  return knex('users').del()
    .then(function () { 
       return knex('users').insert(userbatchfunc());
    });
};  

我从我的帐户里得到种子

承诺{待决}

。如果您希望看到find()函数,请执行以下操作:

代码语言:javascript
运行
复制
const db = require('../database/db_config.js');

module.exports = {
    find
}

function find() {
    return db('accounts');
}

有人能告诉我为什么我的承诺没有得到兑现吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-28 13:41:48

您需要var queryArray = await returnsQueryBuilder();来获得已解决的承诺的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58134732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档