Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 无法使用knex.js连接到heroku psql数据库_Node.js_Heroku_Psql_Knexjs - Fatal编程技术网

Node.js 无法使用knex.js连接到heroku psql数据库

Node.js 无法使用knex.js连接到heroku psql数据库,node.js,heroku,psql,knexjs,Node.js,Heroku,Psql,Knexjs,我无法通过express.js中的后端连接到heroku上的psql数据库。原因是什么请有人回答 server.js代码是: const { handleRegister } = require('./Controllers/Register'); const knex = require('knex'); const db = knex({ client: 'pg', connection: { connectionString : process.env.DATA

我无法通过express.js中的后端连接到heroku上的psql数据库。原因是什么请有人回答

server.js代码是:

const { handleRegister } = require('./Controllers/Register');
const knex = require('knex');
const db = knex({
    client: 'pg',
    connection: {
      connectionString : process.env.DATABASE_URL,
      ssl: true
    }
 });
app.post('/register', (req,res) => {
    handleRegister(req,res,db,bcrypt);  
})
register.js中的代码是:

const saltRounds = 10;
const handleRegister = (req,res,db,bcrypt) => {
    const {firstname, lastname, email, password} = req.body;
    if(!email || !firstname || !lastname || !password){
        return res.status(400).json("Incorrect from submission!");
    }
    bcrypt.genSalt(saltRounds, function(err, salt) {
        bcrypt.hash(password, salt, null , function(err, hash) {
            db.transaction(trx => {
                trx.insert({
                    hash: hash,
                    email: email
                })
                .into("login")
                .returning("email")
                .then(mail => {
                    return trx("users")
                    .returning('*')
                    .insert({
                        email: mail[0],
                        firstname: firstname,
                        lastname: lastname,
                        name: firstname + " " + lastname,
                        joined: new Date()
                    })
                    .then(user => {
                        res.json(user[0]);
                    }).catch(err => {res.json("Unable to Register!")});
                })
                .then(trx.commit)
                .catch(trx.rollback)
            })
            .catch(err => {
                res.json("Error while Registring user!");
            })  
        }); 
    });
}
我得到的响应是“注册用户时出错!”,但我使用cmd成功连接到数据库,下面是ss:


有人能告诉我如何解决这个问题吗?

可能是因为您使用的是Heroku的免费版本。将ssl设置为
ssl:{rejectUnauthorized:false}

在我有类似问题的时候为我工作。然而,这对于生产使用是不安全的!仅在个人项目中使用。

首先,您应该在
err
中记录或输出实际错误。