无法从本地 运行 的服务器获取 graphql 响应

Unable to get graphql response from server that's running on local

我有一个 mongodb 服务器设置,在 运行 下面的命令在端口 3000

上启动
npm run start 

我还有一个 graphql 服务器,在 运行 下面的命令从端口 4000 开始

npm run start-graphql

我的package.json脚本如下

"scripts": {
    "start": "nodemon server.js",
    "start-graphql": "nodemon graphqlserver.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

server.js

require('dotenv').config();
const express = require('express');
const app = express();
const mongoose = require('mongoose');
mongoose.connect(process.env.DATABASE_URL);
const db = mongoose.connection;


db.on('error', (err) => console.log(err));
db.once('open', () => {
    console.log("Backend Database connected");
});


app.use(express.json({ limit: '2mb'}));

const photosRouter = require('./routes/photos');
app.use('/images', photosRouter)


app.listen(3000, () => {
    console.log('Server started at port 3000');
})

graphqlserver.js

const express = require('express');
const path = require('path');
const express_graphql = require('express-graphql').graphqlHTTP;
const { loadSchemaSync } =  require('@graphql-tools/load');
const { GraphQLFileLoader } = require('@graphql-tools/graphql-file-loader');
const { addResolversToSchema } = require('@graphql-tools/schema');

const getResolvers = require('./graphql/resolvers');

// GraphQL schema
const combinedSchema = loadSchemaSync(
    path.join(__dirname, './graphql/schemas/*.graphql'),
    {
      loaders: [new GraphQLFileLoader()],
    }
  );
const schema = addResolversToSchema({
    schema: combinedSchema,
    resolvers: Object.assign({}, getResolvers())
  });

// Create an express server and a GraphQL endpoint
const app = express();

app.use('/graphql', express_graphql({
    schema: schema,
    graphiql: true
}));
app.listen(4000, () => console.log('Express GraphQL Server Now Running On localhost:4000/graphql'));

当我通常通过邮递员或 curl 调用其余 api 时 returns 响应如预期。

例如:http://localhost:3000/images returns 我是 objects

的数组

但是当我想通过 graphql 服务器(端口 4000 上的 运行 调用(使用 axios)时, 我收到的回复为空。 我不知道为什么会这样。 请检查以下屏幕截图以供参考

注意:为了更清楚,请检查代码库link https://github.com/yaswankar/G-photos-backend

如有任何帮助,我们将不胜感激。

提前致谢

请求:请大家帮忙点个赞,这样才能更好的接触到需要帮助的人。

编辑:

新错误截图

我能够通过在照片解析器中添加查询块来解决主要问题

Query: {
    photo: photosContext,
  },

通过处理响应而不是将原始数据发送到 hyper class

解决了另一个错误
async function getActivePhotos(parent, args, req) {
    try {
        const activePhotos = await photoService.getActivePhotos(req).then(resp => resp.data.map(item => item)); // Process and mapping data
        return activePhotos;
    } catch (error) {
        // logger.error(__filename + ': Failed to get response for getActivePhotos, err=' + JSON.stringify(error));
        return new GraphQLError(JSON.stringify(error));
    }
}