Knex.js - TypeError: db (...). Return (...). Insert не является функцией - PullRequest
0 голосов
/ 22 ноября 2018

Я получаю сообщение об ошибке: TypeError: db (...). Return (...). Insert не является функцией

По какой-то причине код запускается 'db.select('*')' без проблем, но когда он достигает

'db('courses')
  .return('*')
  .insert({'

, он выдает ошибку: TypeError: db (...). return (...). insert не является функцией.

Не могу понять, что происходит, я застрял на этом 4 часа.

Пример моего кода:

const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const knex = require('knex');


const db = knex({
  client:'pg',
  connection:{
    host:'127.0.0.1',
    port:'5432',
    user:'postgres',
    password:'',
    database:'YouList'
  }
})


const app = express();

app.use(bodyParser.json());
app.use(cors())

db.select('*').from('users').then(data => {
  console.log(data,'oia a data ai');
});

/*testando sem API*/ 
db('courses')
  .return('*')
  .insert({
    title: "o grande curso",
    description : "uma introducao aos ventos do leste",
    user_id : 78,
    urlimage : "https://i.imgur.com/TiavcG9.jpg",
    created : new Date()
  })
  .then(console.log)
  .then(user => {
    res.json(user[0]);
  })
.catch(err => res.status(400).json('unable to register'))

1 Ответ

0 голосов
/ 22 ноября 2018

Вы звоните return, а не returning.Вы должны также снять цепочку с insert вместо того, чтобы иметь это раньше.Делает это немного более идиоматическим.

Так что просто включите его ...

db('courses')      
  .insert({
    foo: 'bar'
  })
  .returning('*')
...