A serialização JSON é uma tarefa crítica no desenvolvimento web, especialmente para aplicativos criados com Node.js e Express.js. Embora a serialização JSON nativa em Node.js (JSON.stringify()) seja simples e conveniente, ela pode se tornar um gargalo de desempenho, especialmente sob carga pesada. Este artigo apresenta express-fast-json-stringify, um pacote de middleware personalizado que aproveita fast-json-stringify para aumentar significativamente o desempenho de serialização JSON em aplicativos Express.
fast-json-stringify é uma biblioteca de serialização JSON desenvolvida pela equipe Fastify. Ele aumenta a velocidade de conversão JSON analisando as definições do esquema JSON e compilando-as em funções de serialização altamente otimizadas. Isso o torna muito mais rápido que o JSON.stringify() nativo, particularmente benéfico para aplicativos de alto desempenho.
express-fast-json-stringify é um pacote npm que traz os benefícios de desempenho do fast-json-stringify para aplicativos Express.js. Ao integrar este pacote, você pode obter serialização JSON mais rápida, melhorando assim o desempenho geral do seu aplicativo.
Primeiro, instale o pacote express-fast-json-stringify:
npm install express-fast-json-stringify
Defina um objeto de esquema que especifique a estrutura de suas respostas JSON. Este esquema será usado por fast-json-stringify para otimizar o processo de serialização.
import { Schema } from 'express-fast-json-stringify'; const schema: Schema = { title: 'Example Schema', type: 'object', properties: { firstName: { type: 'string' }, lastName: { type: 'string' }, age: { description: 'Age in years', type: 'integer', }, }, };
Use o middleware fastJsonSchema em suas rotas Express, passando o objeto do esquema como argumento. Isso configurará a serialização JSON otimizada para essa rota.
import express, { Request, Response, NextFunction } from 'express'; import { fastJsonSchema, Schema } from 'express-fast-json-stringify'; const app = express(); const exampleSchema: Schema = { title: 'Example Schema', type: 'object', properties: { firstName: { type: 'string' }, lastName: { type: 'string' }, age: { type: 'integer' }, }, }; app.get('/', fastJsonSchema(exampleSchema), (req: Request, res: Response, next: NextFunction) => { }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`); });
Em vez de usar o método res.json() padrão, use o método res.fastJson() fornecido pelo middleware para enviar respostas JSON. Isso aproveita os benefícios de velocidade do fast-json-stringify.
import { fastJsonSchema, Schema } from 'express-fast-json-stringify'; const schema: Schema = { title: 'Example Schema', type: 'object', properties: { firstName: { type: 'string' }, lastName: { type: 'string' }, age: { description: 'Age in years', type: 'integer', }, }, }; app.get('/', fastJsonSchema(schema), (req, res, next) => { try { const data = { firstName: 'Simone', lastName: 'Nigro', age: 40, }; res.fastJson(data); } catch (error) { next(error); } });
Usar express-fast-json-stringify oferece vários benefícios de desempenho:
Integrar express-fast-json-stringify em seu aplicativo Express.js pode fornecer melhorias substanciais de desempenho, especialmente em cenários onde a serialização JSON é um gargalo. Ao aproveitar o poder do fast-json-stringify, você pode obter tempos de resposta mais rápidos e lidar com cargas maiores, tornando seu aplicativo mais eficiente e escalonável.
Para começar a usar express-fast-json-stringify, siga as etapas descritas neste artigo e aproveite os benefícios da serialização JSON mais rápida em seus aplicativos Express. Para uma demonstração ao vivo, você pode conferir a demonstração StackBlitz.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3