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

336
Visualizações
AWS Lambda Node.js. Error de mysql "No se puede poner en cola la consulta después de invocar salir" en la segunda llamada en adelante:

Actualmente estoy creando una resolución de AWS Lambda que utiliza la biblioteca mysql de Nodejs. En este momento, mi lambda es capaz de ejecutar una consulta a la base de datos durante la primera invocación. Sin embargo, en las invocaciones posteriores se produce el error "No se puede poner en cola la consulta después de invocar la salida". Soy consciente de que tiene algo que ver con la conexión a la base de datos, pero si no me equivoco, 'connection.query' debería estar haciendo una conexión implícita a la base de datos. También estoy llamando a la 'conexión.fin' dentro de la devolución de llamada. ¿Alguien podría echarme una mano en esto?

Aquí está el código Lambda index.js:

 /* Amplify Params - DO NOT EDIT API_SIMPLETWITTERCLONE_GRAPHQLAPIENDPOINTOUTPUT API_SIMPLETWITTERCLONE_GRAPHQLAPIIDOUTPUT API_SIMPLETWITTERCLONE_GRAPHQLAPIKEYOUTPUT AUTH_SIMPLETWITTERCLONEB1022521_USERPOOLID ENV REGION Amplify Params - DO NOT EDIT */ const mysql = require("mysql"); // const util = require("util"); const config = require("./config.json"); const connection = mysql.createConnection({ host: config.dbhost, user: config.dbuser, password: config.dbpassword, database: config.dbname, }); // resolvers const resolvers = { Query: { getAllUser: (event) => { return getAllUser(); }, }, }; function executeQuery(sql, params) { return new Promise((resolve, reject) => { const queryCallback = (error, results) => { if (error) { console.log("Error occured during query: " + error.message); connection.destroy(); reject(error); } else { console.log("Connected to database and executed query"); console.log("Results:", results); connection.end((err) => { if (err) { console.log("there was an error closing database:" + err.message); } console.log("database closed"); resolve(results); }); } }; if (params) { connection.query(sql, [...params], (error, results) => { queryCallback(error, results); }); } else { connection.query(sql, (error, results) => { queryCallback(error, results); }); } }); } async function getAllUser() { const sql = "SELECT * FROM User"; try { const users = await executeQuery(sql); return users; } catch (error) { throw error; } } exports.handler = async (event) => { // TODO implement console.log("event", event); console.log('DB connection var', connection); const typeHandler = resolvers[event.typeName]; if (typeHandler) { const resolver = typeHandler[event.fieldName]; if (resolver) { try { return await resolver(event); } catch (error) { throw error; } } } throw new Error("Resolver not found"); };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Estás finalizando tu conexión durante la primera invocación. Como resultado, la segunda invocación ya no tiene esa conexión.

Si crea el objeto de connection durante la importación del módulo , no lo .end() en su invocación.

Si desea .end() el objeto de connection durante la invocación , también debe crearlo durante la invocación .

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