我希望在NodeJS中的GraphQl Apollo服务器中的头值,为此我在其中使用了上下文函数,但它运行了无限次。
在控制台中无限打印“abcd”。
控制台:
代码:
const server = new ApolloServer({
schema: buildSubgraphSchema([{ typeDefs, resolvers }]),
context:((req)=>{
// some code
console.log("abcd");
return "hello"
})
});
整个服务器文件:
const dotenv = require('dotenv')
dotenv.config({ path: './.env' })
const mongoose = require("mongoose");
const { typeDefs } = require("./schema/user");
const { resolvers } = require("./resolvers/resolver");
const { ApolloServer } = require("apollo-server");
const {buildSubgraphSchema} = require('@apollo/subgraph')
const server = new ApolloServer({
schema: buildSubgraphSchema([{ typeDefs, resolvers }]),
context:((req)=>{
// some code
console.log("abcd");
return "hello"
})
});
const PORT = process.env.PORT || 5000;
mongoose.connect(
process.env.MONGO_URI,
{ useNewUrlParser: true }
);
const db = mongoose.connection;
db.on("error", console.error.bind(console, "connection error:"));
db.once("open", function () {
console.log("Connected to MongoDB");
server.listen(PORT, () => console.log(`Server started on port ${PORT}`));
});
1条答案
按热度按时间wydwbb8l1#
对Apollo服务器发出的每个请求都运行上下文函数。
如果你使用的是GraphQL Playground或Apollo Studio这样的工具,它们会在设定的时间间隔内从服务器轮询模式,通常是一秒。检查您是否有任何这些工具连接到您的服务器。如果是这样,请停止他们(或关闭他们的标签),看看“问题”是否消失。
如果在这些工具断开连接时停止重复的日志记录,那么没有什么可担心的,您的服务器实际上只是按预期工作。