Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Minimum reproducible example for "Method not allowed" error

Abierto
#251 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
javascript, node.js
Área
api, backend

Línea de trabajo

Comienza con test.js y reproduce la solicitud GET contra el servidor local. Sigue las llamadas api.get('/'), api.routes(true) y api.run({ event, context }) para determinar por qué la ruta GET mostrada sigue devolviendo “Method not allowed”. Se considera terminado cuando el ejemplo mínimo gestiona la solicitud correctamente o documenta la causa confirmada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I have this MRE

// test.js
import http from 'http';
import getLambdaAPI from 'lambda-api';

const getLambdaEvent = req => {
  const event = {
    path: req.url,
    httpMethod: req.method,
    requestContext: {
      http: { method: req.method, path: req.url },
    },
  };

  return event;
};

const api = getLambdaAPI();

api.get('/', (req, res) => {
    const SERVICE_RESPONSE = "API_RUNNING";
    console.log({ SERVICE_RESPONSE });
    //return { SERVICE_RESPONSE: "API_RUNNING" };
    res.status(200).json({ SERVICE_RESPONSE: "API_RUNNING" });
});

const lambdaHandler = async (event, context) => {
    console.log(event);
    console.log({
      ROUTE_CODE: 'LAMBDA_EVENT',
      PATH: event.requestContext?.http?.path,
      METHOD: event.requestContext?.http?.method,
    });

    api.routes(true);
    return await api.run({ event, context });
  };

const handler = async (req, res) => {
  try {

    const lambdaEvent = getLambdaEvent(req);
    const lambdaRes = await lambdaHandler(lambdaEvent, null)

    res.statusCode = lambdaRes.statusCode;
    res.end(lambdaRes.body);

  } catch(SERVER_ERROR) {
    console.log({ SERVER_ERROR });
    res.statusCode = 500;
    res.end(JSON.stringify({ REQUEST_PARSING_ERROR: SERVER_ERROR.toString() }));
  }
}

const server = http.createServer(handler);
server.listen(8080);

When I run it with node test.js and make a GET request with postman to http://localhost:8080 I get {"error":"Method not allowed"}

Can you spot the issue? Me not neither GPT-4 ([email protected])

The console says this

api$ node test.js
{
  path: '/',
  httpMethod: 'GET',
  requestContext: { http: { method: 'GET', path: '/' } }
}
{ ROUTE_CODE: 'LAMBDA_EVENT', PATH: '/', METHOD: 'GET' }
╔══════════╤═════════╤═══════════╗
║  METHOD  │  ROUTE  │  STACK    ║
╟──────────┼─────────┼───────────╢
║  GET     │  /      │  unnamed  ║
╚══════════╧═════════╧═══════════╝
Lenguaje dominante
JavaScript
Estrellas
1.5k
Forks
127
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de jeremydaly/lambda-api

Todos los issues de jeremydaly/lambda-api

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.