Экземпляр Knex не может подключиться к базе данных PostgreSQL: необработанное отклонение Ошибка: роль "19016" не существует - PullRequest
1 голос
/ 13 апреля 2019

Я могу установить соединение между "knex-pracice" (мой postgreql db) с KNEX, но когда я пытаюсь сделать запрос с моим экземпляром knex, я получаю сообщение об ошибке: "Ошибка необработанного соединения: роль"19016 "не существует".19016 - это имя моей учетной записи пользователя системы WINDOWS 10.и я пытаюсь выяснить, почему он использует «19016» вместо указанного пользователя «dunder-mifflin».Я новичок и в postgres, и в knex, так что простите меня, если мое описание немного сбивает с толку или если мне кажется, что я полностью неправильно понимаю мою проблему.

Кроме того, я попытался "взломать" мою проблему, создавПользователь с именем «19016» в базе данных и попытался подключиться таким образом, но он просто дает мне еще одну ошибку: «Ошибка необработанного подключения: база данных« 19016 »не существует».Я совершенно сбит с толку тем, как заставить его подключаться к postgresql с именем пользователя "dunder-mifflin". Однако я могу подключаться и запрашивать базу данных через мой powershell без проблем ....

.env

NODE_ENV=development
PORT=8000 
DB_URL="postgresql://dunder-mifflin@localhost/knex-practice" 

practice.js

//adds .env file for environment variable access
require('dotenv').config()
const knex = require('knex')

// database connection --> this connction comes from the .env file
const knexInstance = knex({
    client: 'pg',
    //   database connection established --> environment variable comes from .env
    // file
    connection: process.env.DB_URL 
})

console.log('connection successful');

// SQL query
knexInstance
    .from('amazong_products')
    .select('*')
    .then(result => {
        console.log(result)
    });



package.json

{
    "name": "knex-practice",
    "version": "1.0.0",
    "description": "knex-practice",
    "main": "index.js",
    "scripts": {
        "test": "mocha --require test/setup.js",
        "dev": "nodemon src/server.js",
        "start": "node src/practice.js",
        "predeploy": "npm audit",
        "deploy": "git push heroku master"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/quonn-bernard/Express-Boilerplate.git"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "bugs": {
        "url": "https://github.com/quonn-bernard/Express-Boilerplate/issues"
    },
    "homepage": "https://github.com/quonn-bernard/Express-Boilerplate#readme",
    "dependencies": {
        "cors": "^2.8.5",
        "dotenv": "^7.0.0",
        "express": "^4.16.4",
        "helmet": "^3.16.0",
        "knex": "^0.16.5",
        "morgan": "^1.9.1",
        "pg": "^7.9.0"
    },
    "devDependencies": {
        "chai": "^4.2.0",
        "mocha": "^6.0.2",
        "nodemon": "^1.18.10",
        "supertest": "^4.0.2"
    }
}

1 Ответ

1 голос
/ 13 апреля 2019

Вам нужно изменить строку подключения на:

postgres://user:pass@localhost:5432/dbname
...