Не удалось развернуть приложение KeystoneJS в Google App Engine - PullRequest
0 голосов
/ 02 января 2019

У меня есть приложение KeystoneJS на экземпляре Google Compute Engine, после запуска mongod и npm в папке моего проекта, я запускаю gcloud app deploy и получаю следующую ошибку:

Mongoose connection "error" event fired with:
{ MongoError: failed to connect to server [localhost:27017] on first connect
at Pool.<anonymous> (/app/node_modules/mongodb-core/lib/topologies/server.js:326:35)
at Pool.emit (events.js:182:13)
at Connection.<anonymous> (/app/node_modules/mongodb-core/lib/connection/pool.js:272:12)
at Object.onceWrapper (events.js:273:13)
at Connection.emit (events.js:182:13)
at Socket.<anonymous> (/app/node_modules/mongodb-core/lib/connection/connection.js:175:49)
at Object.onceWrapper (events.js:273:13)
at Socket.emit (events.js:182:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
name: 'MongoError',
message:
'failed to connect to server [localhost:27017] on first connect' }
Error: KeystoneJS (Modern Marketing) failed to start - Check that you are running `mongod` in a separate process.
at NativeConnection.<anonymous> (/app/node_modules/keystone/lib/core/openDatabaseConnection.js:59:10)
at NativeConnection.emit (events.js:182:13)
at Immediate.<anonymous> (/app/node_modules/mongoose/lib/connection.js:296:19)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! modern-marketing@0.0.0 start: `node keystone.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the modern-marketing@0.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!     /root/.npm/_logs/2019-01-02T05_59_39_493Z-debug.log

У меня нетИмею большой опыт работы с MongoDB или KeystoneJS, поэтому любая оценка приветствуется

1 Ответ

0 голосов
/ 12 января 2019

Похоже, что при развертывании в GAE вы сохраняете подключение по умолчанию к локальной размещенной базе данных mongo.(failed to connect to server [localhost:27017])

Поскольку в среде GAE не запущен mongodb, вам необходимо создать базу данных mongo (есть много различных сервисов mongodb, которые вы можете использовать здесь) и настроить свой проект с помощью MONGO_URIПеременная env.

Затем Keystonejs попытается подключить базу данных, указанную в этой переменной.

Я надеюсь, что этот комментарий поможет вам, если у вас все еще есть проблемы с настройкой всего этого, выможете показать нам свой файл app.yaml;)

...