GarikProg / Link-shortener

App to shoten links (aka bit.ly).
0 stars 0 forks source link

Не запускается приложение #1

Open ruddy22 opened 4 years ago

ruddy22 commented 4 years ago

Приветствую, @GarikProg !

Не стартует приложение! Что я делаю не так?

Выкачал репозиторий с кодом приложения. Следовал инструкциям, описанным в README-файле:

При запуске команды получаю ошибку:

λ npm start

> link-shortener@1.0.0 start C:\Users\Petrov_alexe\work\js\Link-shortener
> cd server && npm i && npm start

npm WARN server@1.0.0 No description
npm WARN server@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.2.1 (node_modules\jest-haste-map\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.2.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

audited 1028 packages in 5.372s

49 packages are looking for funding
  run `npm fund` for details

found 1 low severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details

> server@1.0.0 start C:\Users\Petrov_alexe\work\js\Link-shortener\server
> node server.js

You listen port 3001
internal/crypto/keys.js:302
      throw new ERR_INVALID_ARG_TYPE(
      ^

TypeError [ERR_INVALID_ARG_TYPE]: The "key" argument must be one of type Buffer, TypedArray, DataView, string, or KeyObject. Received type object
    at prepareSecretKey (internal/crypto/keys.js:302:13)
    at new Hmac (internal/crypto/hash.js:101:9)
    at Object.createHmac (crypto.js:139:10)
    at createHMAC (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\sasl.js:133:17)
    at Hi (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\sasl.js:137:13)
    at Object.continueSession (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\sasl.js:32:24)
    at Client._handleAuthSASLContinue (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\client.js:257:10)
    at Connection.emit (events.js:223:5)
    at C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\connection.js:115:12
    at Parser.parse (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg-protocol\dist\parser.js:40:17) {
  code: 'ERR_INVALID_ARG_TYPE'
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! server@1.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the server@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Petrov_alexe\AppData\Roaming\npm-cache\_logs\2020-11-24T13_53_35_198Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! link-shortener@1.0.0 start: `cd server && npm i && npm start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the link-shortener@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Petrov_alexe\AppData\Roaming\npm-cache\_logs\2020-11-24T13_53_35_287Z-debug.log

Контент .env:

URL_DB=postgresql://localhost:5432
GarikProg commented 4 years ago

URL_DB=postgres:// jpdbtcdz:MPqX_DqQhkLWYA0q0HJ9AuTgZbWJuaWF@hattie.db.elephantsql.com:5432/jpdbtcdz Попробуйте запустить с этой строчкой в. env

вт, 24 нояб. 2020 г., 16:56 Aleksey Petrov notifications@github.com:

Приветствую, @GarikProg https://github.com/GarikProg !

Не стартует приложение! Что я делаю не так?

Выкачал репозиторий с кодом приложения. Следовал инструкциям, описанным в README-файле:

  • создал .env с настройкой URL_DB
  • запустил необходимые команды

При запуске команды получаю ошибку:

λ npm start

link-shortener@1.0.0 start C:\Users\Petrov_alexe\work\js\Link-shortener cd server && npm i && npm start

npm WARN server@1.0.0 No description

npm WARN server@1.0.0 No repository field.

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules\fsevents):

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.2.1 (node_modules\jest-haste-map\node_modules\fsevents):

npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.2.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

audited 1028 packages in 5.372s

49 packages are looking for funding

run npm fund for details

found 1 low severity vulnerability

run npm audit fix to fix them, or npm audit for details

server@1.0.0 start C:\Users\Petrov_alexe\work\js\Link-shortener\server node server.js

You listen port 3001

internal/crypto/keys.js:302

  throw new ERR_INVALID_ARG_TYPE(

  ^

TypeError [ERR_INVALID_ARG_TYPE]: The "key" argument must be one of type Buffer, TypedArray, DataView, string, or KeyObject. Received type object

at prepareSecretKey (internal/crypto/keys.js:302:13)

at new Hmac (internal/crypto/hash.js:101:9)

at Object.createHmac (crypto.js:139:10)

at createHMAC (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\sasl.js:133:17)

at Hi (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\sasl.js:137:13)

at Object.continueSession (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\sasl.js:32:24)

at Client._handleAuthSASLContinue (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\client.js:257:10)

at Connection.emit (events.js:223:5)

at C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg\lib\connection.js:115:12

at Parser.parse (C:\Users\Petrov_alexe\work\js\Link-shortener\server\node_modules\pg-protocol\dist\parser.js:40:17) {

code: 'ERR_INVALID_ARG_TYPE'

}

npm ERR! code ELIFECYCLE

npm ERR! errno 1

npm ERR! server@1.0.0 start: node server.js

npm ERR! Exit status 1

npm ERR!

npm ERR! Failed at the server@1.0.0 start script.

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

npm ERR! C:\Users\Petrov_alexe\AppData\Roaming\npm-cache_logs\2020-11-24T13_53_35_198Z-debug.log

npm ERR! code ELIFECYCLE

npm ERR! errno 1

npm ERR! link-shortener@1.0.0 start: cd server && npm i && npm start

npm ERR! Exit status 1

npm ERR!

npm ERR! Failed at the link-shortener@1.0.0 start script.

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:

npm ERR! C:\Users\Petrov_alexe\AppData\Roaming\npm-cache_logs\2020-11-24T13_53_35_287Z-debug.log

Контент .env:

URL_DB=postgresql://localhost:5432

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/GarikProg/Link-shortener/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/APY2C5MBXJS6QBWAUDHM5RLSRO3PLANCNFSM4UA5MR5Q .

ruddy22 commented 4 years ago

В общем, да. Это рабочий варинат решения проблемы, но я хочу обратить внимание на некоторые моменты:

  1. эту ссылку, как пример, можно приложить в README, т.к. не все будут разбираться в проблеме
  2. стоит обернуть подключение к базе в try {...} catch (e) {...}, чтобы отловить ошибку подключения к базе. Таким образом текст (например, "Не могу подключиться к БД.") ошибки, будет указывать пользователю, что он сделал что-то не так. А если добавить причину ошибки, то будет очень хорошо. Например, "Не могу подключиться к БД. Не определён адрес БД", "Не могу подключиться к БД. Но к серверу подключился, проверьте login/pass."

В остальном ОК. Игорь, исправьте этот момент пожалуйста и закройте issue.

UPD. Ожидаю базовых исправлений - обновление README и try-catch вокруг подключения к базе.

GarikProg commented 4 years ago

Добавил ссылку в README, обернул синхронизацию с базой данных в try, catch (функция sync в /server/DB/modelLink.js). Сейчас причина ошибки выводиться в консоль через console.error. Там в принципе указана причина ошибки на английском. Я еще подумаю как можно улучшить вывод причины ошибок.