PostgreSQL应用程序上显示Sqlite3错误消息

时间:2018-10-21 21:40:59

标签: node.js postgresql sqlite express

我正在学习使用node express和knexjs构建应用程序以连接到Postgresql数据库。当我发出发布请求时,会显示此警告消息。我尝试发布的数据不在数据库中。也许该应用程序以为我正在使用sqlite3?

  

sqlite不支持插入默认值。设置useNullAsDefault标志以隐藏此警告。 (请参阅文档http://knexjs.org/#Builder-insert)。

这是我的server.js。

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

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true
}));

const database = knex({
  client: 'pg',
  connection: {
    host : '127.0.0.1',
    user : 'xxxxxxx',
    password : 'xxxxxxx',
    database : 'xxxxxxxxdb'
  }
});

app.use(express.static(__dirname + '/../public/'));

app.get('/add_athlete', function(req, res) {
  res.sendFile('add_athlete.html', {root: path.resolve(__dirname + '/../public/templates')});
});

app.post('/add_athlete', function(req, res) {
  knex('participants').insert({
    participant_number: 1,
    email: "test@gmail.com",
    first_name: "test",
    last_name: "again"
  })
  .then (function () {
    res.json({success: true, message: "ok"})
  })
});

app.listen(3000);
console.log('Running at port 3000');

1 个答案:

答案 0 :(得分:0)

只需确保这个问题有答案。

如评论中所述,您可能要使用创建的数据库实例。

因此,您可能不希望使用knex('participants').insert...来代替database('participants').insert...