Code Monkey home page Code Monkey logo

Comments (5)

zachary822 avatar zachary822 commented on May 24, 2024 1

Code:

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Debug.Trace
import Network.Wai
import Web.Scotty

rewriteMiddleware app req sendResponse = do
  app req{queryString = [("a", Just "b")]} sendResponse

main :: IO ()
main = do
  scotty 3000 $ do
    middleware rewriteMiddleware

    get "/" $ do
      p <- queryParams
      req <- request
      traceShowM p
      traceShowM req
      text "riveting content!"

Stdout:

Setting phasers to stun... (port 3000) (ctrl-c to quit)
[]
Request {requestMethod = "GET", httpVersion = HTTP/1.1, rawPathInfo = "/", rawQueryString = "", requestHeaders = [("Host","localhost:3000"),("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:120.0) Gecko/20100101 Firefox/120.0"),("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"),("Accept-Language","en-US,en;q=0.5"),("Accept-Encoding","gzip, deflate, br"),("DNT","1"),("Connection","keep-alive"),("Upgrade-Insecure-Requests","1"),("Sec-Fetch-Dest","document"),("Sec-Fetch-Mode","navigate"),("Sec-Fetch-Site","none"),("Sec-Fetch-User","?1")], isSecure = False, remoteHost = 127.0.0.1:50733, pathInfo = [], queryString = [("a",Just "b")], requestBody = <IO ByteString>, vault = <Vault>, requestBodyLength = KnownLength 0, requestHeaderHost = Just "localhost:3000", requestHeaderRange = Nothing}

from scotty.

ocramz avatar ocramz commented on May 24, 2024

from scotty.

ocramz avatar ocramz commented on May 24, 2024

@zachary822 would you be able to provide a minimal repro for this? Thanks!

from scotty.

ocramz avatar ocramz commented on May 24, 2024

The solution seems to be fixing this line only: https://github.com/scotty-web/scotty/blob/e6a97352229d9e1811193ff93d2eccf7e1ab9526/Web/Scotty/Route.hs#L163C22-L163C22

from scotty.

zachary822 avatar zachary822 commented on May 24, 2024

I made a simple fix.

from scotty.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.