Javascript 列“中的空值”;电邮;违反非空约束

Javascript 列“中的空值”;电邮;违反非空约束,javascript,postgresql,express,Javascript,Postgresql,Express,我得到了以下错误(错误日志),我找到了一些解决方案并尝试了它们,但没有一个是有效的。如果你能帮我做这件事就太好了 index.js: require('dotenv').config(); const express = require('express'); const bodyParser = require('body-parser') const cors = require('cors'); const adminGate = require('./admin') const app

我得到了以下错误(错误日志),我找到了一些解决方案并尝试了它们,但没有一个是有效的。如果你能帮我做这件事就太好了

index.js

require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser')
const cors = require('cors');
const adminGate = require('./admin')
const app = express();
const port = process.env.PORT;
const host = process.env.HOST;

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

app.get('/', (req, res)=>{
    res.send("NODE SERVER IS UP AND RUNNING");
});

// routing
app.post('/create_user', adminGate.createUser);

app.listen(port,()=>{
    console.table(`SERVER IS RUNNING ON PORT:${port}!`);
    console.table(`CHECK: http://${host}:${port}`)
});
const Pool = require('pg').Pool
const pool = new Pool({
  user: 'postgres',
  host: 'localhost',
  database: '##########',
  password: '##########',
  port: 5432,
});

const createUser = (request, response) => {
    const {email, username, password} =  request.params // || request.body none of them is working.

    pool.query('INSERT INTO users(email, username, password) VALUES($1,$2,$3)',[email, username, password], (error, results) => {
        if (error) {
            throw error
        }
        response.status(201).json({status: 'success', message: 'User added.'})
    })
}


module.exports ={createUser}
admin.js

require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser')
const cors = require('cors');
const adminGate = require('./admin')
const app = express();
const port = process.env.PORT;
const host = process.env.HOST;

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

app.get('/', (req, res)=>{
    res.send("NODE SERVER IS UP AND RUNNING");
});

// routing
app.post('/create_user', adminGate.createUser);

app.listen(port,()=>{
    console.table(`SERVER IS RUNNING ON PORT:${port}!`);
    console.table(`CHECK: http://${host}:${port}`)
});
const Pool = require('pg').Pool
const pool = new Pool({
  user: 'postgres',
  host: 'localhost',
  database: '##########',
  password: '##########',
  port: 5432,
});

const createUser = (request, response) => {
    const {email, username, password} =  request.params // || request.body none of them is working.

    pool.query('INSERT INTO users(email, username, password) VALUES($1,$2,$3)',[email, username, password], (error, results) => {
        if (error) {
            throw error
        }
        response.status(201).json({status: 'success', message: 'User added.'})
    })
}


module.exports ={createUser}
错误日志

SERVER IS RUNNING ON PORT:3000!
CHECK: http://localhost:3000
/Users/pouya/src/admin.js:26
            throw error
            ^

error: null value in column "email" violates not-null constraint
    at Parser.parseErrorMessage (/Users/pouya/node_modules/pg-protocol/dist/parser.js:278:15)
    at Parser.handlePacket (/Users/pouya/node_modules/pg-protocol/dist/parser.js:126:29)
    at Parser.parse (/Users/pouya/node_modules/pg-protocol/dist/parser.js:39:38)
    at Socket.<anonymous> (/Users/pouya/pg-protocol/dist/index.js:8:42)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:302:12)
    at readableAddChunk (_stream_readable.js:278:9)
    at Socket.Readable.push (_stream_readable.js:217:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:186:23) {
  length: 184,
  severity: 'ERROR',
  code: '23502',
  detail: 'Failing row contains (null, null, null).',
  hint: undefined,
  position: undefined,
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  schema: 'public',
  table: 'users',
  column: 'email',
  dataType: undefined,
  constraint: undefined,
  file: 'execMain.c',
  line: '1974',
  routine: 'ExecConstraints'
}
服务器正在端口3000上运行!
检查:http://localhost:3000
/Users/pouya/src/admin.js:26
抛出错误
^
错误:“电子邮件”列中的null值违反了NOTNULL约束
在Parser.parseErrorMessage(/Users/pouya/node_modules/pg protocol/dist/Parser.js:278:15)
位于Parser.handlePacket(/Users/pouya/node_modules/pg protocol/dist/Parser.js:126:29)
在Parser.parse(/Users/pouya/node_modules/pg protocol/dist/Parser.js:39:38)
在插座上。(/Users/pouya/pg protocol/dist/index.js:8:42)
在Socket.emit(events.js:315:20)
在addChunk(_stream_readable.js:302:12)
在readableAddChunk(_stream_readable.js:278:9)
在Socket.Readable.push(_stream_Readable.js:217:10)
在TCP.onStreamRead(internal/stream_base_commons.js:186:23){
长度:184,
严重性:“错误”,
代码:“23502”,
详细信息:“失败的行包含(null,null,null)。”,
提示:未定义,
位置:未定义,
内部位置:未定义,
internalQuery:未定义,
其中:未定义,
架构:“公共”,
表:“用户”,
专栏:“电子邮件”,
数据类型:未定义,
约束:未定义,
文件:“execMain.c”,
行:“1974年”,
例行程序:“执行约束”
}

您必须传递请求和响应,因为createUser需要这两个参数

app.post('/create_user',(req, res) => {
  adminGate.createUser(req, res);
});
在createUser函数中

const {email, username, password} =  request.query

谢谢你的回答,但它不起作用,因为它说,
响应没有定义
!我已经编辑了答案,试试那个。当您发出POST请求时,您可以访问该请求及其响应。由于您从createUser func中的请求中获得电子邮件等,因此您可以传递这些请求和响应。
列“email”中的null值违反了非null约束
仍会收到此错误!你试过request.query吗?看来你已经试过了。另外,值得检查createUser函数中的请求对象,看看您得到了什么。它现在正在工作,请编辑答案,其余的我会做,谢谢!