Welcome to the Linux Foundation Forum!

Lab-7.1: Failed to fetch url


this is my solution for lab-7.1
and i start the application using this script
"dev": "BOAT_SERVICE_PORT=3333 BRAND_SERVICE_PORT=3334 fastify start -w -l info -P app.js"

'use strict'

const {
} = process.env
const schema = {
    params: {
        type: 'object',
        additionalProperties: false,
        properties: {
            id: { type: 'integer' }
const boatUrl = `http://localhost:${BOAT_SERVICE_PORT}`;
const brandUrl = `http://localhost:${BRAND_SERVICE_PORT}`;
module.exports = async function (fastify, opts) {
  fastify.get('/:id', {schema: schema}, async function (request, reply) {
    const {id} = request.params;
    const boatResponse = await fetch(boatUrl + '/' + id);
    if (boatResponse.status === 404) {
        console.log('not found')
        throw fastify.httpErrors.notFound()
    const boatResult = await boatResponse.json();
    const brandResponse = await fetch(brandUrl + '/' + boatResult.brand);
    if (brandResponse.status === 404) {
        throw fastify.httpErrors.notFound();
    const brandResult = await brandResponse.json();

    return {
        id: id,
        color: boatResult.color,
        brand: brandResult.name

but i got this error

ERROR (1934): fetch failed
    reqId: "req-1"
    req: {
      "method": "GET",
      "url": "/1",
      "hostname": "localhost:3000",
      "remoteAddress": "::1",
      "remotePort": 52469
    res: {
      "statusCode": 500
    err: {
      "type": "TypeError",
      "message": "fetch failed: connect ECONNREFUSED ::1:3333",
          TypeError: fetch failed
              at Object.fetch (node:internal/deps/undici/undici:11576:11)
              at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
              at async Object.<anonymous> (/Users/ibrahim/node-training/lab-7.1/routes/root.js:21:26)
          caused by: Error: connect ECONNREFUSED ::1:3333
              at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16)

any thoughts ?


  • faddah
    faddah Posts: 7
    edited January 29

    Your Error status code response is 500, which for HTTP status codes is an Internal Server Error. Are you certain that local server is up & running and that it is set up to receive this routed GET request? Also, you got this fetch from whichever localhost you have set up on Port 3000 — is that the BOAT_SERVICE_PORT localshost server or the BRAND_SERVICE_PORT localhost server? I'd look at whichever one of those is on localhost:3000 and start there.

  • xdxmxc
    xdxmxc Posts: 148

    if you have connection refused it means you're not running the necessary services on those ports


Upcoming Training