diff --git a/packages/kit/src/server.ts b/packages/kit/src/server.ts index d2c6a20476b..ba2a031f118 100644 --- a/packages/kit/src/server.ts +++ b/packages/kit/src/server.ts @@ -9,6 +9,19 @@ export interface LegacyServerMiddleware { handler: Middleware | string } +/** + * normalize handler object + * + */ +function normalizeHandlerMethod (handler: NitroEventHandler) { + // retrieve method from handler file name + const [, method = undefined] = handler.handler.match(/\.(get|head|patch|post|put|delete|connect|options|trace)(\.\w+)*$/) || [] + return { + method, + ...handler + } +} + /** * Adds a new server middleware to the end of the server middleware array. * @@ -23,7 +36,7 @@ export function addServerMiddleware (middleware: LegacyServerMiddleware) { * */ export function addServerHandler (handler: NitroEventHandler) { - useNuxt().options.serverHandlers.push(handler) + useNuxt().options.serverHandlers.push(normalizeHandlerMethod(handler)) } /**