本文整理汇总了TypeScript中apollo-server-core.convertNodeHttpToRequest函数的典型用法代码示例。如果您正苦于以下问题:TypeScript convertNodeHttpToRequest函数的具体用法?TypeScript convertNodeHttpToRequest怎么用?TypeScript convertNodeHttpToRequest使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了convertNodeHttpToRequest函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: runHttpQuery
const graphqlHandler = (
req: express.Request,
res: express.Response,
next,
): void => {
runHttpQuery([req, res], {
method: req.method,
options: options,
query: req.method === 'POST' ? req.body : req.query,
request: convertNodeHttpToRequest(req),
}).then(
({ graphqlResponse, responseInit }) => {
Object.keys(responseInit.headers).forEach(key =>
res.setHeader(key, responseInit.headers[key]),
);
res.write(graphqlResponse);
res.end();
},
(error: HttpQueryError) => {
if ('HttpQueryError' !== error.name) {
return next(error);
}
if (error.headers) {
Object.keys(error.headers).forEach(header => {
res.setHeader(header, error.headers[header]);
});
}
res.statusCode = error.statusCode;
res.write(error.message);
res.end();
},
);
};
开发者ID:simonjoom,项目名称:react-native-project,代码行数:35,代码来源:expressApollo.ts
示例2: async
const graphqlHandler = async (req: MicroRequest, res: ServerResponse) => {
let query;
try {
query =
req.method === 'POST'
? req.filePayload || (await json(req))
: url.parse(req.url, true).query;
} catch (error) {
// Do nothing; `query` stays `undefined`
}
try {
const { graphqlResponse, responseInit } = await runHttpQuery([req, res], {
method: req.method,
options,
query,
request: convertNodeHttpToRequest(req),
});
setHeaders(res, responseInit.headers);
return graphqlResponse;
} catch (error) {
if ('HttpQueryError' === error.name && error.headers) {
setHeaders(res, error.headers);
}
if (!error.statusCode) {
error.statusCode = 500;
}
throw error;
}
};
开发者ID:simonjoom,项目名称:react-native-project,代码行数:32,代码来源:microApollo.ts
示例3: return
return (req, res, next): void => {
runHttpQuery([req, res], {
method: req.method,
options: options,
query: req.method === 'POST' ? req.body : req.query,
request: convertNodeHttpToRequest(req),
}).then(
({ graphqlResponse, responseInit }) => {
if (responseInit.headers) {
for (const [name, value] of Object.entries(responseInit.headers)) {
res.setHeader(name, value);
}
}
res.write(graphqlResponse);
res.end();
},
(error: HttpQueryError) => {
if ('HttpQueryError' !== error.name) {
return next(error);
}
if (error.headers) {
for (const [name, value] of Object.entries(error.headers)) {
res.setHeader(name, value);
}
}
res.statusCode = error.statusCode;
res.write(error.message);
res.end();
},
);
};
开发者ID:apollostack,项目名称:apollo-server,代码行数:33,代码来源:expressApollo.ts
示例4: runHttpQuery
const graphqlHandler = (ctx: Koa.Context): Promise<void> => {
return runHttpQuery([ctx], {
method: ctx.request.method,
options: options,
query:
ctx.request.method === 'POST'
? // fallback to ctx.req.body for koa-multer support
ctx.request.body || (ctx.req as any).body
: ctx.request.query,
request: convertNodeHttpToRequest(ctx.req),
}).then(
({ graphqlResponse, responseInit }) => {
Object.keys(responseInit.headers).forEach(key =>
ctx.set(key, responseInit.headers[key]),
);
ctx.body = graphqlResponse;
},
(error: HttpQueryError) => {
if ('HttpQueryError' !== error.name) {
throw error;
}
if (error.headers) {
Object.keys(error.headers).forEach(header => {
ctx.set(header, error.headers[header]);
});
}
ctx.status = error.statusCode;
ctx.body = error.message;
},
);
};
开发者ID:apollostack,项目名称:apollo-server,代码行数:33,代码来源:koaApollo.ts
示例5: async
handler: async (request, h) => {
try {
const { graphqlResponse, responseInit } = await runHttpQuery(
[request, h],
{
method: request.method.toUpperCase(),
options: options.graphqlOptions,
query:
request.method === 'post'
? // TODO type payload as string or Record
(request.payload as any)
: request.query,
request: convertNodeHttpToRequest(request.raw.req),
},
);
const response = h.response(graphqlResponse);
Object.keys(responseInit.headers).forEach(key =>
response.header(key, responseInit.headers[key]),
);
return response;
} catch (error) {
if ('HttpQueryError' !== error.name) {
throw Boom.boomify(error);
}
if (true === error.isGraphQLError) {
const response = h.response(error.message);
response.code(error.statusCode);
response.type('application/json');
return response;
}
const err = new Boom(error.message, { statusCode: error.statusCode });
if (error.headers) {
Object.keys(error.headers).forEach(header => {
err.output.headers[header] = error.headers[header];
});
}
// Boom hides the error when status code is 500
err.output.payload.message = error.message;
throw err;
}
},
开发者ID:apollostack,项目名称:apollo-server,代码行数:44,代码来源:hapiApollo.ts
示例6: async
return async (
request: FastifyRequest<IncomingMessage>,
reply: FastifyReply<OutgoingMessage>,
) => {
try {
const { graphqlResponse, responseInit } = await runHttpQuery(
[request, reply],
{
method: request.req.method as string,
options,
query: request.req.method === 'POST' ? request.body : request.query,
request: convertNodeHttpToRequest(request.raw),
},
);
if (responseInit.headers) {
for (const [name, value] of Object.entries<string>(
responseInit.headers,
)) {
reply.header(name, value);
}
}
reply.serializer((payload: string) => payload);
reply.send(graphqlResponse);
} catch (error) {
if ('HttpQueryError' !== error.name) {
throw error;
}
if (error.headers) {
Object.keys(error.headers).forEach(header => {
reply.header(header, error.headers[header]);
});
}
reply.code(error.statusCode);
reply.serializer((payload: string) => payload);
reply.send(error.message);
}
};
开发者ID:apollostack,项目名称:apollo-server,代码行数:40,代码来源:fastifyApollo.ts
注:本文中的apollo-server-core.convertNodeHttpToRequest函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论