@historydev
Острая аллергия на анимешников

Почему bcrypt не считает число числовым значением?

Доброй ночи.Скажите пожалуйста почему при экспорте переменной bcrypt выдает ошибку что это не число,хотя в переменной число.Если пишу просто число как параметр все ок.

Здесь экспорт (packages.js)
const dotenv = require('dotenv')
const initializeDotenv =  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.COMPLAXITY

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


Здесь импорт и непосредственно bcrypt
const { pool } = require('./mysql')
const { bcrypt,saltRounds,dotenv } = require('./packages')

//Create query
class NewQuery {

	constructor(type,table,inputs,values,select) {

		this.type = type
		this.table = table
		this.inputs = inputs
		this.values = values
		this.select = select

		this.newQuery = `${this.type} ${this.table} (${this.inputs}) VALUES(${this.values}`
		
		this.send = (password) => {

			return new Promise((resolve, reject) => {

				pool.query(this.select, (err,res) => {

					if (res.length < 1) {

						console.log(saltRounds)

						bcrypt.genSalt(saltRounds, (err, salt) => {
							if(err) console.error(`${err} - salt`)
			    			bcrypt.hash(password, salt, (err, hash) => {

			    				if(err) console.error(`${err} - hash`)

			    				console.log(`${hash} ${salt} ${password} ${saltRounds}`)

								pool.query(`${this.newQuery},'${hash}')`, (err,res) => {
							  	
								  	if(err) console.error(err)

								  	console.log(`Success: User created! ${this.newQuery} ${hash}`)

								})

							})
						})

					}

					else {

						console.log('Banned: User registered!');

					}

				})
			})

		}
	}
}

//Create object for query
class CreateQuery {
	constructor(type,table,inputs,values,select,password) {
		this.type = type
		this.table = table
		this.inputs = inputs
		this.values = values
		this.select = select
		this.password = password
	}
}

module.exports = { NewQuery, CreateQuery}


.env
#Project mode
NODE_ENV=production

#App port
PORT=3000

#Mysql

HOST=localhost

USER=root

PASSWORD=

DATABASE=test

SOCKET=

#Bcrypt

COMPLAXITY=10

#Secret for sessions

SECRET=$$999$$


Спасибо заранее за помощь
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
like-a-boss
@like-a-boss
Признайся,тебяТянетНаКодМужика,ты—программный гей
Быстрейший и предпочтительный способ приведения строки к числу:
const saltRounds = +process.env.COMPLAXITY;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@bpGusar
*spoiler*
переменные окружения это всегда строки, если нужно число необходимо преобразовать, например const saltRounds = Number(process.env.COMPLAXITY)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы