Bookshelf запросы к БД

205
19 мая 2017, 16:28

Добрый день.

Есть таблица Questions в которой хранятся вопросы и в ней же есть столбец author_question - в котором хранится id пользователя.

Есть таблица Users в которой хранятся пользователи и там есть столбец username, который содержит имя пользователя.

При запросе к БД мне нужно получить список с вопросами и я его успешно получаю. Но в этом списке присутствует id пользователя и это логично т.к. в таблице Questions в столбце author_question хранится именно id.

Вопрос: Как мне в одном запросе по этому id при получении списка вопросов сразу получить и имя пользователя из таблици Users.

Что делаю: Файл model.js

import bookshelf from './bookshelf';
export const Users = bookshelf.Model.extend({
  tableName: 'users'
});
export const Questions = bookshelf.Model.extend({
  tableName: 'questions',
  author_question: function() {
    return this.belongsTo(Users, 'username');
  }
});

Файл(роут) с самим запросом:

getQuestions.post('/', (req, res) => {      
  Questions.query(function(db) {        
  }).fetchAll({ withRelated:['author_question'] })
  .then(questions => {    
    if (questions) {            
      res.json({ questions });
    } else {
      res.status(401).json({ errors: { form: 'Invalid Credentials' } 
    });
  }
 });
});

В итоге получаю ошибку : Unhandled rejection Error: Undefined binding(s) detected when compiling SELECT query: select "users".* from "users" where "users"."id" in (?)

Я по ходу где-то с самим синтаксисом напортачил и не понял принцип построения связей в bookshelf. Разъясните с указанием на ошибки. Спасибо.

READ ALSO
Передача данных с сервера на клиент

Передача данных с сервера на клиент

Есть такая переменная на клиенте:

697
Обрезать тег в строке

Обрезать тег в строке

Есть такой блок

185
Ошибка в рекурсии при обходе дерева

Ошибка в рекурсии при обходе дерева

Есть функция, которая получает массив mas2 (он задаёт структуру дерева) и массив с параметрами param, которые нужно сложить по правилу в зависимости...

205
Точно описать строчки кода. JS - слайдер

Точно описать строчки кода. JS - слайдер

Мне посоветовали взять этот кусок кодаЯ взяв, но толком мне не понятны некоторые моменты

192