Задать вопрос
@historydev
Редактирую файлы с непонятными расширениями

Почему mysql ругается если подключаю переменные из dotenv?

Доброе утро.Данные доходят,но почему-то я получаю ошибку error_access_denied_error,вывел данные в объект и подключил - все ок.

В предыдущем подобном вопросе была проблема с числом,помогло +process.env.COMPLEXITY

Сейчас я предположил возможнсть не строкового вывода,применил String(), толку 0
Причем локально работает,а на хостинге получаю ошибку,поэтому и принялся решать это поздно

Вот мой класс и пакеты

.env:

#Project mode
NODE_ENV=production

#App port
PORT=3000

#Mysql

HOST=localhost

USER=root

PASSWORD=

DATABASE=test

SOCKET=

#Bcrypt

COMPLEXITY=10

#Secret for sessions

SECRET=$$999$$


mysql.js:

const { mysql,dotenv,util } = require('./packages')

console.log(process.env.USER)

class Mysql {

	constructor(host,user,password,database,socket) {

		this.connection
		this.host = host
		this.user = user
		this.password = password
		this.database = database
		this.socket = socket

		if(socket) {
			this.connection = mysql.createPool({
				   socketPath: this.socket,
				   port: 3306,
				   user: this.user,
				   password: this.password,
				   database: this.database
			})
		}

		else {
			this.connection = mysql.createPool({
				   host: this.host,
				   port: 3306,
				   user: this.user,
				   password: this.password,
				   database: this.database
			});
		}

		return this.connection
	}

}

const options = {
    host: 'localhost',
    user: 'root',
    password: '',
    db: 'test',
    // socket: '/var/run/mysqld/mysqld.sock'
}

const {host,user,password,db,socket} = options;

const pool = new Mysql(host,user,password,db,socket)

pool.getConnection((err, connection) => {
  if (err) {
    console.error(err.code)
  }
  if (connection) connection.release()
})

pool.query = util.promisify(pool.query)

module.exports = { Mysql,pool }


packages.js:

const dotenv = require('dotenv')
dotenv.config({path: __dirname + '/.env'})
var path = require('path')
const express = require('express')
const session = require('express-session')
const util = require('util')
const mysql = require('mysql')
const fileStore = require('session-file-store')(session)
const passport = require('passport')
const localStrategy = require('passport-local').Strategy
const bcrypt = require('bcrypt')
//Complex hash for bcrypt
const saltRounds = +process.env.COMPLEXITY

module.exports = {dotenv, path, express, session, util, mysql, fileStore, passport, localStrategy, bcrypt, saltRounds}


Получаю это локально:
5dd37665494ca496484669.png

Это на хостинге:
5dd387fad92ee012560793.png
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 2
@bpGusar
*spoiler*
не понятно на что тут что ругается, ведь сервер успешно стартанул (последний скрин)
но если считать за "ругается" строку deprecated то вам необходимо просто загуглить эту ошибку, она по идее не будет влиять на работу но лучше исправить
Ответ написан
@historydev Автор вопроса
Редактирую файлы с непонятными расширениями
Все,разобрался, у них dotenv забиндил себе переменную USER и там выдовало своего юзера,а не из моей переменной,заменил имя - заработало.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы