ошибка возврата запроса на соединение с использованием knex (node ​​/ express) - PullRequest
0 голосов
/ 25 октября 2018

Я хочу вернуть все программное обеспечение, которое принадлежит пользователю.У меня есть что-то вроде этого

В моделях / software.js у меня есть

const options = {
    client: 'mysql',
    connection: {
        ...
    }
}

const knex = require('knex')(options);
const bookshelf = require('bookshelf');
const db = bookshelf(knex);

//SOFTWARE MODEL 
const Software = db.Model.extend({
    tableName: 'table_software',
});

function getSoftware(idUser) {
    return knex.select('*').from('table_software').join('table_user', 'table_user.id','table_user_id').where('table_user_id', '=', idUser);
};

module.exports = {
    Software,
    getSoftware
}

А в маршрутах / software.js у меня есть

const Software = require("../models/software");
...

router.post("/", verifyToken, (req, res) => {
    jwt.verify(req.token, process.env.JWT_ENCRYPTION, (err, authData) => {
        if (err) {
            res.sendStatus(403);
        } else {
            console.log(authData.id);
            if (req.params.id == authData.id) {
                res.json(Software.getSoftware(authData.id));

            } 
        }   
    });
});

Ошибка, которую я получаюэто TypeError: Converting circular structure to JSON.И если я укажу на результат console.log, я получу кучу информации о моих таблицах и подключении к базе данных, а не данные из запроса.Что я делаю не так?

Вот как я создаю свои таблицы:

return knex.schema.createTable('table_user', table => {
        table.increments('id').unsigned().primary();
        table.string('email').notNullable();
        table.unique('email');
        table.string('password_digest').notNullable();
    });

 return knex.schema.createTable('table_software', table => {
      table.increments('id').unsigned().primary();
      table.string('name').notNullable();

   table.integer('table_user_id').unsigned().notNullable().references('id').inTable('table_user').onDelete('CASCADE').index();
              table.unique(['name', 'table_user_id']);
          });

Я просто хочу сделать select * from login_software join login_user on login_user.id = login_user_id where login_user_id = 1

...