Node.js 无法使用knex.js连接到heroku psql数据库
我无法通过express.js中的后端连接到heroku上的psql数据库。原因是什么请有人回答 server.js代码是: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
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
中记录或输出实际错误。