Welcome to the Linux Foundation Forum!

Chaptet 8 - Single-Origin, Multi-Route Proxy, Invalid URL

I followed the code in the course and updated my app.js too look like this

'use strict'
const proxy = require('fastify-http-proxy')
module.exports = async function (fastify, opts) {
  fastify.register(proxy, {
    upstream: 'htt‌ps://news.ycombinator.com/'
  })
}

after running the app, I got this error.

TypeError [ERR_INVALID_URL]: Invalid URL: htt‌ps://news.ycombinator.com/
[fastify-cli] app crashed - waiting for file changes before starting..

any solutions for this one?

Comments

  • davidmarkclements
    davidmarkclements Posts: 270
    edited September 2021

    @reuben158 you've somehow included an invisible zero width non-joiner character, just before the "p" in https, which makes the url invalid.

    https://www.fileformat.info/info/unicode/char/200c/index.htm
    https://en.wikipedia.org/wiki/Zero-width_non-joiner

  • Hi @davidmarkclements, I am now getting this error

    `
    18:30:10 ✨ Server listening at http://127.0.0.1:3000
    18:30:12 ✨ incoming request GET xxx /
    18:30:12 ✨ fetching from remote server
    AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:

    assert(this.servername)

    [fastify-cli] app crashed - waiting for file changes before starting...
    `

  • @reuben158 did you get this error in WSL as well?

  • "use strict";
    const path = require("path");
    const AutoLoad = require("fastify-autoload");
    module.exports = async function (fastify, opts) {
      // Place here your custom code!
      fastify.register(require("fastify-http-proxy"), {
        upstream: "https://news.ycombinator.com/",
      });
      // Do not touch the following lines
      // This loads all plugins defined in plugins
      // those should be support plugins that are reused
      // through your application
      fastify.register(AutoLoad, {
        dir: path.join(__dirname, "plugins"),
        options: Object.assign({}, opts),
      });
      // This loads all plugins defined in routes
      // define your routes in one of these
      fastify.register(AutoLoad, {
        dir: path.join(__dirname, "routes"),
        options: Object.assign({}, opts),
      });
    };
    

    With fastify 3.x.x this code above is generated. Paste the custom code and delete the root.js (or uncomment or change the endpoint, whatever...)

  • @reuben158 lmk if you still need help with this otherwise we'll close this thread soon

  • jhonny111s
    jhonny111s Posts: 22
    edited September 2022

    @davidmarkclements said:
    @reuben158 you've somehow included an invisible zero width non-joiner character, just before the "p" in https, which makes the url invalid.

    https://www.fileformat.info/info/unicode/char/200c/index.htm
    https://en.wikipedia.org/wiki/Zero-width_non-joiner

    I got the same issue and is when we copied the code from that page (Single-Origin, Multi-Route Proxy (1)), VsCode told me "The character U+200c is invisible."

  • With the same code right now we got an error FastifyWarning.fastify-http-proxy: fastify-http-proxy has been deprecated., because of the new fastify version.

    to solve that please instead use npm i @fastify/http-proxy and in root:

    'use strict'
    const proxy = require('@fastify/http-proxy')
    module.exports = async function (fastify, opts) {
      fastify.register(proxy, {
        upstream: 'https://news.ycombinator.com/'
      })
    }
    
  • xdxmxc
    xdxmxc Posts: 110

    @fcioanca can we please address the hidden characters problem on the learning platform asap

    @jhonny111s thanks for that, this will be resolved in a major content update

  • dtowerss
    dtowerss Posts: 5

    Hi guys,
    the hidden character is still there when copying the content directly from the course material:

Categories

Upcoming Training