我是新来GraphQL。
开始开发一个GraphQL应用从Oracle数据库中提取数据。
这是非常简单的应用程序。 查询与响应resultset
,并可以看到结果console.log
; 然而,它不来到graphql
窗口(响应/分解器窗口)。 它引发错误
不能对非User.email返回null
我试图在Oracle连接的承诺。 不知道,为什么它没有显示在GraphQL数据。
UserType.js
module.exports = new GraphQLObjectType({
name: 'User',
fields: () => {
return{
id: { type: GraphQLID },
email: { type: new GraphQLNonNull(GraphQLString) }
}
}
});
DBConnection.js
module.exports = oraPool => {
return {
getUsers(apiKey){
return oracledb.createPool(oraConfig).then(function() {
console.log("Connection Pool created");
return oracledb.getConnection().then(function(conn) {
return conn.execute(
//`SELECT 'User ' || JSON_OBJECT ('id' VALUE id, 'email' VALUE email) FROM users where id = :id`
`SELECT * FROM users WHERE id = :id`
,[apiKey]).then(result => {
//console.log(result.metaData);
console.log(humps.camelizeKeys(result.rows[0]));
conn.close();
return humps.camelizeKeys(result.rows[0]);
})
.catch(function(err) {
console.log(err.message);
return connection.close();
});
})
.catch(function(err) {
console.error(err.message);
});
})
}
}
}
Type.js
const RootQueryType = new GraphQLObjectType({
name: 'RootQueryType',
fields: {
user: {
type: UserType,
args: {
key: { type: new GraphQLNonNull(GraphQLString) }
},
resolve: (obj, args, { oraPool }) => {
return oradb(oraPool).getUsers(args.key);
}
}
}
});