Развертывание на Heroku бота Telegram на базе nodejs - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь развернуть бот-шахматную телеграмму, для которой у разработчика есть демоверсия, и она хорошо работает. Однако в этом коде есть ошибка в том, что черные и белые фигуры меняются местами, а слон и пешка меняются местами для обоих цветов.

Итак, я решил его разветвить и исправил эту ошибку, и решил, что сам устрою его для проверки и вот где я застрял, так как мало что знаю об узле - npm мире. Я попытался довести его до такой степени, что heroku компилирует все без ошибок:

heroku build and deployment succeed

, но тогда этот код использует модуль knex, и если я попытаюсь и запустите на моем локальном компьютере рекомендованный npm run knex migrate:latest от оригинального автора, он выдает ошибку npm ERR! missing script: knex.

Local npm error

Форк, который я создал, доступен здесь: https://github.com/pubmania/chessbot Я установил следующие переменные среды на heroku:

Config Vars

Это снова соответствует указаниям оригинальный автор.

Первоначально, когда я пытался создать динамометрический стенд, я получал сообщение «без узла узла», поэтому я добавил узел узла с последней версией узла в пакете. json, а затем он выдал ошибку «нет запуска script ", поэтому я добавил стартовый сценарий в package. json, который по сути совпадает с" dev ", но это устранило эту ошибку. Теперь в журнале heroku отображаются следующие записи:

2020-05-05T10:31:34.714232+00:00 app[web.1]:     at Object.<anonymous> (/app/src/index.js:23:23)
2020-05-05T10:31:34.714233+00:00 app[web.1]:     at Module._compile (internal/modules/cjs/loader.js:1133:30)
2020-05-05T10:31:34.714233+00:00 app[web.1]:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
2020-05-05T10:31:34.714233+00:00 app[web.1]:     at Module.load (internal/modules/cjs/loader.js:977:32)
2020-05-05T10:31:34.714234+00:00 app[web.1]:     at Function.Module._load (internal/modules/cjs/loader.js:877:14) {
2020-05-05T10:31:34.714234+00:00 app[web.1]:   code: 'MODULE_NOT_FOUND',
2020-05-05T10:31:34.714234+00:00 app[web.1]:   requireStack: [ '/app/src/index.js' ]
2020-05-05T10:31:34.714235+00:00 app[web.1]: }
2020-05-05T10:31:34.741594+00:00 app[web.1]: [31m[nodemon] app crashed - waiting for file changes before starting...[39m
2020-05-05T10:32:30.546060+00:00 heroku[web.1]: State changed from starting to crashed

Я попытался запустить команду npm run knex migrate:latest из heroku bash, но все равно получил ту же ошибку, что и на скриншоте ниже.

enter image description here

Я читал немного больше и добавил в раздел сценариев пакета следующее: json

"knex": "node_modules/.bin/knex migrate:latest"

, а затем запуск npm run knex на локальном компьютере дал

sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

, что, возможно, объясняется тем, что на локальном я использую sqlite, поэтому я просто запустил heroku local web, но это дало ошибку:

13:31:24 web.1   |  > chessbot@1.0.0 start C:\a-chess-bot-git\chessbot
13:31:24 web.1   |  > nodemon -w src src/index.js
13:31:25 web.1   |  [nodemon] 1.19.4
13:31:25 web.1   |  [nodemon] to restart at any time, enter `rs`
13:31:25 web.1   |  [nodemon] watching dir(s): src\**\*
13:31:25 web.1   |  [nodemon] watching extensions: js,mjs,json
13:31:25 web.1   |  [nodemon] starting `node src/index.js`
13:31:25 web.1   |  internal/modules/cjs/loader.js:960
13:31:25 web.1   |    throw err;
13:31:25 web.1   |    ^
13:31:25 web.1   |  Error: Cannot find module 'C:\a-chess-bot-git\chessbot\src\scenes'
13:31:25 web.1   |  Require stack:
13:31:25 web.1   |  - C:\a-chess-bot-git\chessbot\src\index.js
13:31:25 web.1   |      at Function.Module._resolveFilename (internal/modules/cjs/loader.js:957:15)
13:31:25 web.1   |      at Function.Module._resolveFilename (C:\a-chess-bot-git\chessbot\node_modules\module-alias\index.js:49:29)
13:31:25 web.1   |      at Function.Module._load (internal/modules/cjs/loader.js:840:27)
13:31:25 web.1   |      at Module.require (internal/modules/cjs/loader.js:1019:19)
13:31:25 web.1   |      at require (internal/modules/cjs/helpers.js:77:18)
13:31:25 web.1   |      at Object.<anonymous> (C:\a-chess-bot-git\chessbot\src\index.js:23:23)
13:31:25 web.1   |      at Module._compile (internal/modules/cjs/loader.js:1133:30)
13:31:25 web.1   |      at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
13:31:25 web.1   |      at Module.load (internal/modules/cjs/loader.js:977:32)
13:31:25 web.1   |      at Function.Module._load (internal/modules/cjs/loader.js:877:14) {
13:31:25 web.1   |    code: 'MODULE_NOT_FOUND',
13:31:25 web.1   |    requireStack: [
13:31:25 web.1   |      'C:\\a-chess-bot-git\\chessbot\\src\\index.js'
13:31:25 web.1   |    ]
13:31:25 web.1   |  }
13:31:25 web.1   |  [nodemon] app crashed - waiting for file changes before starting

Мы будем очень признательны за любую помощь в развертывании этого на heroku.

1 Ответ

0 голосов
/ 06 мая 2020

Прочитав дальше и немного погрузившись в код ветки "master", я понял, что проблема заключалась в том, что в коде отсутствуют некоторые файлы index. js. Репо, которое я раздвоил из , имело «резервную» ветку, и ее использование, похоже, сработало, хотя оно все еще работало не так, как ожидалось, и давало сбой.

Я наконец сдался и удалил разветвленное репо и попытаюсь снова, когда у меня будет немного свободного времени, но проблема, указанная выше, определенно была закрыта, и я оставлю ее здесь в надежде, что кто-то сочтет ее полезной.

...