Use uws-utils instead
Plugin for uWebSockets.js that wraps App instance to improve DX (Developer Experience).
yarn add uws-wrapper
-
Replace the parameters in the callback of the http request functions with a context object:
-app[<HTTP_METHOD>](<ROUTE_PATTERN>, (res, req) => { ... }) +app[<HTTP_METHOD>](<ROUTE_PATTERN>, ({ req, res }) => { ... })
-
Replace the result of
res.getQuery()
method with a query object (generated by fastest-qs):const query = req.getQuery() -console.log('Query:', query) // q=1&q2 +console.log('Query:', query) // { q: 1, q: 2 }
-
Add
req.body.json
methodconst jsonBody = await req.body.json() console.log(jsonBody) // { prop1: 1, prop2: 2 }
import { App } from 'uWebSockets.js'
import { transformCallback } from 'uws-wrapper'
const port = +(process.env.PORT || 3000)
// Register the Plugin
const app = transformCallback({
// Default HTTP methods: 'get', 'post', 'options', 'del', 'patch', 'put', 'head', 'connect', 'trace', 'any'
httpMethods: new Set(['get', 'post'])
})(App())
// Usage
app
.get(pattern, async ({ req, res }) => {
console.log('Query:', req.getQuery()) // { q: 1, q: 2 }
console.log('JSON body:', await req.body.json()) // { prop1: 1, prop2: 2 }
res.end('Hello World!')
})
.listen(port, (listenSocket) => {
if (listenSocket) {
console.log(`Server running at http://localhost:${port}`)
} else {
console.log(`Failed to listen to port ${port}`)
}
})
This project is licensed under the MIT License.