Я хочу вернуть все программное обеспечение, которое принадлежит пользователю.У меня есть что-то вроде этого
В моделях / 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