获取远程 ip GraphQL Express Node



按照 NodeJS 中的 GraphQL 教程进行操作,使用 express: https://graphql.org/graphql-js/authentication-and-express-middleware/似乎很容易获得ip,但是当我在本地尝试时:

无法读取

未定义的属性"ip"类型错误:无法读取属性 未定义的"ip" at Object.ip (/Users/mac/Documents/repos/rebuspluginapi/src/app.ts:85:20( at/Users/mac/Documents/repos/rebuspluginapi/src/controllers/social-campaings.controller.ts:41:19 at Generator.next (( at/Users/mac/Documents/repos/rebuspluginapi/src/controllers/social-campaings.controller.ts:8:71 在新承诺 ((

代码:

let root = {
ip: function (args, request) {
return request.ip;
}
};
// Rutas graphQL
app.use(
'/v1/graphql',
cors(),
graphqlHTTP({
schema: mergeSchemas({ schemas }),
rootValue: root,
graphiql: true
})
);

当我尝试访问 IP 时会产生错误:

console.log(queryParams.ip);

我不知道,queryParams是什么.你有queryParams变量吗?

但是当我尝试教程时,这不是问题。

我认为来源在 8 个月后发生了一些变化。

var express = require('express');
var { graphqlHTTP } = require('express-graphql');
var { buildSchema } = require('graphql');
var schema = buildSchema(`
type Query {
ip: String
}
`);
const loggingMiddleware = (req, res, next) => {
console.log('ip:', req.ip);
next();
}
var root = {
ip: function (args, request) {
return request.ip;
}
};
var app = express();
app.use(loggingMiddleware);
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
app.listen(4000);
console.log('Running a GraphQL API server at localhost:4000/graphql');

的结果 GraphiQL

最新更新