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: 204
    edited September 1

    @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

Categories

Upcoming Training