Я изучаю, как настроить сервер на OpenShift, который использует node, express, GraphQL и Postgres, и мне нужна помощь.Настройка graphQL на OpenShift
При попытке настроить сервер GraphQL я после этого, и он работает на моей локальной машине:
import Express from 'express';
import GraphQL from 'express-graphql';
import Schema from './db/GQLschema';
const app = Express();
app.use('/graphql', GraphQL({
schema: Schema,
pretty: true,
graphiql: true
}));
...
Я использую шаблон server.js предоставленный OpenShift так вышеуказанных изменений :
...
self.app = express();
self.app.configure(function() {
self.app.use('/public', express.static(__dirname+'/public'));
self.app.use('/graphql', GraphQL({
schema: Schema,
pretty: true,
graphiql: true
}));
});
...
Но это не работает при нажатии на OpenShift. Я получаю «Внутренняя ошибка сервера» вместо интерфейса graphiql.
Я новичок в этом, но здесь есть некоторые предположения относительно того, что это, возможно, придется делать с:
- Подключение к базе данных
Недостающие зависимости
Подключение к database: У меня есть 2 файла конфигурации json. Один для моей локальной машины, который подключается с помощью туннеля SSH для переадресации портов в OpenShift. Это прекрасно работает. Другая - для производства. В нем у меня есть все строки для имени базы данных, пользователя, порта, хоста и пароля, которые предоставил мне OpenShift. Я использую библиотеку config, которая смотрит на NODE_ENV, чтобы решить, какой конфигурационный файл json использовать. Я установил переменную NODE_ENV в OpenShift для производства. Когда я его запрашиваю, он показывает все правильные строки. Есть что-то еще, что мне нужно установить?
Отсутствие зависимостей. Чтобы сохранить его в чистоте, я сохраняю свой внутренний код отдельно от моего кода переднего плана. Таким образом, внутренний код содержит только экспресс, графику, сиквелз, конфиг и файл pg. Мне нужно что-то еще, чтобы страница graphiql работала? Кроме того, я поместил все/node_modules/в файл .gitignore - я предположил, что OpenShift устанавливает их post push. Правильно ли это было?
бы признателен за любую помощь!