Comments (8)
Yeah it presumes there is always a body, which isn't a good assumption.
from oak.
I did some digging and it seems oak is handling empty body properly:
async listen(addr: string): Promise<void> {
const middleware = compose<Context<S>, S>(this._middleware);
const server = this._serve(addr);
for await (const request of server) {
const context = new Context<S>(this, request);
await middleware(context);
console.log('post middleware');
const srvRes = context.response.toServerResponse();
console.log('post src res', srvRes);
await request.respond(srvRes);
console.log('responded');
}
}
If you respond with empty body responded
is printed to console, I suspect problem is in serve
from deno_std
. TBC
from oak.
Sorry @kitsonk, this is issue from deno_std
. denoland/std#52
from oak.
Yeah. I had narrowed it down to there too. Let's leave this open, because will need to bump the dep once resolved.
from oak.
Actually we can set content-length to 0 in oak.
from oak.
I think it's a good idea, will get it working for now. I'll see to proper handling in standard lib.
from oak.
Yeah, I think in the toServerResponse
is the content-length is missing and there is no content-encoding
and no body, the setting it should be fine. I think if there is user set content-encoding
then they may be doing something like streaming a file.
Based on that, it is arguable if http
should std
should actually support it as really it should leave all those concerns up to implementors.
from oak.
Agreed, but as we can see now if body is not supplied server just hangs, I believe http.serve
should handle such cases nevertheless instead of hanging. I'll just implement it anyway 👍
from oak.
Related Issues (20)
- Use body and relay it via proxy middleware in oak v13+ HOT 1
- Proxied request secure?
- Controllers, why doesn't possible inject with private?
- More typing on Request and Response object? HOT 4
- request.body.text() causes error on localhost HOT 3
- Oak import causes a compiled app to hang HOT 1
- context.request.body is not a function
- How to gracefully exit, when Bun Server does not adhere to AbortSignal? HOT 2
- ctx.request.body is not a function
- Application's State type error HOT 2
- A better way to handle pre-processed bodies by zod / joi / yup / ajv
- Use `:authority` psueod-header on HTTP/2 if available HOT 4
- Support `Forwarded` header as well as `X-Forwarded-*` HOT 1
- Exceptions from AsyncGenerator responses cause the connection to hang HOT 2
- `deno emit` does not support dynamic imports and npm dependencies so can't be used with oak HOT 1
- Error handling doesn't work HOT 8
- Body limit in oak@13+ HOT 1
- Property `Context.Params` does not exist HOT 1
- Property Context.Params does not exist HOT 2
- How to upload a file from the client or from postman to the server?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oak.