Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting an error of Exception: TypeError: stream.listeners is not a function from Serverless node-module #252

Open
Vikas252 opened this issue Oct 28, 2022 · 0 comments

Comments

@Vikas252
Copy link

Vikas252 commented Oct 28, 2022

I am currently using serverless-http for azure with express while going through the state i got an error from serverless node module. I have integrate it with serverless framework.

Here is the error i'm getting:
Screenshot (2)

And this is my server setup and serverless-http setup
hello.js:

"use strict"

const serverless = require("serverless-http")
const express = require("express")

const app = express()
const router = express.Router()
app.set("port", process.env.PORT || 3000 )
app.listen(app.get("port"), () => {
  console.log(`listening on port ${app.get("port")}`)
})

router.get("/api/serverless", (req, res) => {
  res.json("Hi")
})

app.use("/", router)

const handler = serverless(app, { provider: 'azure' });
module.exports.handlertest = async (context, req) => {
  context.res = await handler(context, req);
}

// Export your express server so you can import it in the lambda function.
module.exports = app

// app.use(/* register your middleware as normal */)

serverless.yml:

# Welcome to Serverless!
#
# This file is the main config file for your service.
# It's very minimal at this point and uses default values.
# You can always add more config options for more control.
# We've included some commented out config examples here.
# Just uncomment any of them to get that config option.
#
# For full config options, check the docs:
#    docs.serverless.com
#
# Happy Coding!

service: serverless

# You can pin your service to only deploy with a specific Serverless version
# Check out our docs for more details
frameworkVersion: "3"

provider:
  name: azure
  region: West US 2
  runtime: nodejs14
  # os: windows  # windows is default, linux is available
  # prefix: "sample"  # prefix of generated resource name
  # subscriptionId: 
  # stage: dev
  # type: premium  # premium azure functions

  environment: # these will be created as application settings
    VARIABLE_FOO: "foo"

  # you can define apim configuration here
  # apim:
  #   apis:
  #     - name: v1
  #       subscriptionRequired: false # if true must provide an api key
  #       displayName: v1
  #       description: V1 sample app APIs
  #       protocols:
  #         - https
  #       path: v1
  #       tags:
  #         - tag1
  #         - tag2
  #       authorization: none
  #   cors:
  #     allowCredentials: false
  #     allowedOrigins:
  #       - "*"
  #     allowedMethods:
  #       - GET
  #       - POST
  #       - PUT
  #       - DELETE
  #       - PATCH
  #     allowedHeaders:
  #       - "*"
  #     exposeHeaders:
  #       - "*"

plugins: # look for additional plugins in the community plugins repo: https://github.com/serverless/plugins
  - serverless-azure-functions

# you can add packaging information here
package:
  patterns:
    # - '!exclude-me.js'
    # - '!exclude-me-dir/**'
    - "!local.settings.json"
    - "!.vscode/**"
    # - include-me.js
    # - include-me-dir/**

functions:
  api:
    handler: src/handlers/hello.handlertest
    events:
      - http: true
        name: res
        route: "{*segments}"
        authLevel: anonymous # can also be `function` or `admin`
      - http: true
        x-azure-settings:
          direction: out
          name: "$return"

  # The following are a few examples of other events you can configure:
  # storageBlob:
  #   handler: src/handlers/storageBlob.printMessage
  #   events:
  #     - blob:
  #       x-azure-settings:
  #         name: blob # Specifies which name is available on `context`
  #         path: blob-sample/{blobName}
  #         connection: AzureWebJobsStorage # App Setting/environment variable which contains Storage Account Connection String
  # storageQueue:
  #   handler: src/handlers/storageQueue.printMessage
  #   events:
  #     - queue: queue-sample
  #       x-azure-settings:
  #         name: message # Specifies which naem is available on `context`
  #         connection: AzureWebJobsStorage
  # timer:
  #   handler: src/handlers/timer.printMessage
  #   events:
  #     - timer:
  #       x-azure-settings:
  #         schedule: '*/10 * * * * *'
  # eventhub:
  #   handler: src/handlers/eventHub.printMessage
  #   events:
  #     - eventHub:
  #       x-azure-settings:
  #         name: eventHubMessages # Specifies which name it's available on `context`
  #         eventHubName: sample-hub # Specifies the Name of the Event Hub
  #         consumerGroup: $Default # Specifies the consumerGroup to listen with
  #         connection: EVENT_HUBS_CONNECTION # App Setting/environment variable which contains Event Hubs Namespace Connection String
  # serviceBusQueue:
  #   handler: src/handlers/serviceBusQueue.printMessage
  #   events:
  #     - serviceBus:
  #       x-azure-settings:
  #         name: message # Specifies which name is available on `context`
  #         queueName: sample-queue # Name of the service bus queue to consume
  #         connection: SERVICE_BUS_CONNECTION # App Setting/environment variable variable which contains Service Bus Namespace Connection String
  # serviceBusTopic:
  #   handler: src/handlers/serviceBusTopic.printMessage
  #   events:
  #     - serviceBus:
  #       x-azure-settings:
  #         name: message # Specifies which name it's available on `context`
  #         topicName: sample-topic # Name of the service bus topic to consume
  #         subscriptionName: sample-subscription # Name of the topic subscription to retrieve from
  #         connection: SERVICE_BUS_CONNECTION # App Setting/environment variable variable which contains Service Bus Namespace Connection String

function.json:

{
  "disabled": false,
  "bindings": [
    {
      "type": "httpTrigger",
      "direction": "in",
      "name": "res",
      "route": "{*segments}",
      "authLevel": "anonymous"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "$return"
    }
  ],
  "entryPoint": "handlertest",
  "scriptFile": "../src/handlers/hello.js"
}

packages used:
Azure Functions Core Tools
Core Tools Version: 3.0.4837 Commit hash: N/A (64-bit)
Function Runtime Version: 3.14.1.0

node version: 14.20.1
running in dev container using docker configuration

@Vikas252 Vikas252 changed the title Getting and error of Exception: TypeError: stream.listeners is not a function from Serverless node-module Getting an error of Exception: TypeError: stream.listeners is not a function from Serverless node-module Oct 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant