Todo novo desenvolvedor que entra no mundo NODE(gosto de dizer mundo, pq o node é muita coisa) aprende logo de inicio a instalar o servidor(que estende o padrão do Node) expressJS.
Express é ótimo.
Express tem boa documentação
Express tem muito material de tutoriais.
Express tem muita pergunta no stackoverflow(isso é importante)
Tudo em node(relacionado a API e sites) muitos materiais com express.
Se você procurar no google por expressjs vai ter como resposta mais de 3 milhões de resultados
Expressjs esta em tudo.
Mas eu vim aqui para passar a palavra do Fastify
Fastify é um servidor web(que estende o servidor padrão do node)
Em miúdos. Ele faz exatamente a mesma coisa que o express.
Só que mais rápido(segundo os devs do fastify).
Além de usar a arquitetura de middleware(caso você sinta saudades do express)
Isso não é uma comparação de qual é o melhor!
Nada disso. É apenas mostrar uma alternativa!
Fastify É inspirado no Hapi e no Express.
Eu gostei dele pela velocidade(no que eu precisei)
E este é o mote de propaganda dele. Velocidade! Tem os testes no site deles.
Gostei do uso de schema(são meio chato de fazer, mas muito bons depois :). Te ajuda muito.
Basta criar um arquivo de nome qualquer
colar o código abaixo e mandar rodar.
estes códigos são do site oficial do fastify
// Require the framework and instantiate it const fastify = require('fastify')({ logger: true }) // Declare a route fastify.get('/', async (request, reply) => { return { hello: 'world' } }) // Run the server! const start = async () => { try { await fastify.listen(3000) } catch (err) { fastify.log.error(err) process.exit(1) } } start()
Pronto, já pode testar a /.
Agora vamos por validações com schema
const fastify = require('fastify')({ logger: true }) fastify.route({ method: 'GET', url: '/', schema: { // request needs to have a querystring with a `name` parameter querystring: { name: { type: 'string' } }, // the response needs to be an object with an `hello` property of type 'string' response: { 200: { type: 'object', properties: { hello: { type: 'string' } } } } }, // this function is executed for every request before the handler is executed preHandler: async (request, reply) => { // E.g. check authentication }, handler: async (request, reply) => { return { hello: 'world' } } }) const start = async () => { try { await fastify.listen(3000) } catch (err) { fastify.log.error(err) process.exit(1) } } start()
Mas não é só isso!
Fastify é todo assíncrono!
Tem ganchos que ajudam muito.
Você pode validar algo antes de chegar a qualquer rota. Parecido com o use do Express.
Declarando rotas com array.
const routes = [{ method: 'GET', url: '/api/qualquercoisa', preHandler:[pre1, pre2, pre3], OutroHook:[outro,outro], schema: seuSchema handler:seuHandler }, ] module.exports = minharota
Isso é só o começo!
const blogRoutes = require('./routes/minharota') minhasrotas.forEach((route, index) => { app.route(route) })
Criando um plugin!
module.exports = function (fastify, opts, done) { fastify.decorate('utility', () => {}) fastify.get('/', handler) done() }
Tem muito mais plugins prontinhos pra você usar!
De resto é muito parecido com outros servidores!
Quero em breve postar mais algumas coisas sobre o fastify!
Top comments (0)