Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

755
Visualizações
Fastify Error: ERR_AVVIO_PLUGIN_TIMEOUT: el complemento no se inició a tiempo

Estoy siguiendo un tutorial Fastify, todo ha ido bien hasta ahora ( conectado a la base de datos, las rutas funcionan, etc.), sin embargo, cuando intento agregar las notesDAL , recibo el siguiente error:

Error: ERR_AVVIO_PLUGIN_TIMEOUT: plugin did not start in time: /routes/notes/notesDAL.js. You may have forgotten to call 'done' function or to resolve a Promise

El código es exactamente el mismo que el del tutorial, así que supongo que tal vez esté desactualizado pero estoy perdido. He intentado algunas formas diferentes y parece que constantemente me enfrento a errores. Cualquier ayuda sería muy apreciada.

notas.js

 "use strict"; const NotesDAL = require("./notesDAL"); module.exports = async function (fastify, opts) { const notesDAL = NotesDAL(fastify.db); fastify.route({ method: "POST", url: "/", handler: async (request, reply) => { const { title, body } = request.body; const newNote = await notesDAL.createNote(title, body); return newNote; }, }); };

notasDAL.js

 const NotesDAL = (db) => { const createNote = async (title, body) => { const { id } = await db.one( "INSERT INTO notes (title, body) VALUES ($1, $2) RETURNING id", [title, body] ); return { id, title, body }; }; return { createNote }; }; module.exports = NotesDAL;

Si importa, la estructura de carpetas es:

 /app.js /plugins/db.js /routes/notes/notes.js /routes/notes/notesDAL.js

Editar:

Lo he hecho funcionar, sin embargo, estoy seguro de que no es la forma correcta de hacer las cosas, se ve muy extraño.

notasDAL.js

 const NotesDAL = (db) => {}

actualizado a:

 const NotesDAL = async (db) => {}

notas.js

 const newNote = await notesDAL.createNote(title, body)

actualizado a:

 const newNote = await (await.notesDAL).createNote(title, body)

Como mencioné, esto se ve mal pero parece estar funcionando. Todavía me gustaría saber un mejor método para hacer esto.

Gracias.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Resulta que al crear el proyecto con fastify-cli estaba usando fastify-autoload, lo que impedía que esto funcionara.

AutoLoad puede ignorar los archivos DAL agregando lo siguiente a app.js cuando registra AutoLoad:

 ignorePattern: /.*(DAL).js/,

A continuación, funciona con éxito. Alternativamente, puedo mover notesDAL.js a una carpeta llamada services y funciona. Así que la estructura de carpetas sería:

 /app.js /plugins/db.js /routes/notes/notes.js /services/notesDAL.js
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda