Apollo-Server,如何与 SailsJS 一起使用?

Posted

技术标签:

【中文标题】Apollo-Server,如何与 SailsJS 一起使用?【英文标题】:Apollo-Server, how to use it with SailsJS? 【发布时间】:2019-01-15 19:56:01 【问题描述】:

我不明白如何将 Apollo-Server 与Sails.JS(基于Express)之类的应用一起使用。

Apollo-Server 的自述文件 (https://github.com/apollographql/apollo-server#express) 指出 Express 应用程序需要此代码:

const server = new ApolloServer( typeDefs, resolvers );
const app = express();
server.applyMiddleware( app );

但是为什么?以及如何Sails.JS 中使用它?

为什么我们不能改用这段代码? :

let apollo = require('apollo-server').ApolloMiddleware
app.use( '/graphql', apollo( typeDefs, resolvers ) );

我不是唯一遇到此问题的人:Why isn't Apollo Server a middleware for Express, rather than being a server that accepts Express as a middleware?

【问题讨论】:

【参考方案1】:

我不建议将 apollo-server 与 Sails.JS 一起使用。如果您要做类似的事情,我建议直接使用节点的graphql 库并添加您自己的端点。 apollo-server 只是试图做太多 Sails 已经为你做的事情,反之亦然。它并没有真正做很多你不能用你自己的中间件轻松插入的事情。对不起,祝你好运。

【讨论】:

以上是关于Apollo-Server,如何与 SailsJS 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

SailsJS - 将sails.io.js 与JWT 一起使用

如何使用 apollo-server 进行缓存

我如何在sailsjs上使用jwt检查用户是不是是管理员

如何使用 Express 和 Apollo-Server 获取 HTTP 授权标头

用 Apollo-server 和 Prisma 2 开玩笑

与 apollo-server 的 Websocket 连接为 connectionParams 返回乱码