Comments (5)
Adding a mention in the docs sounds valuable
from nest.
I'd tried to make concise @UploadFile()
similar decorator supports both express
and fastify
, and understood why @kamilmysliwiec and @jmcdo29 had configured of @UploadFile()
to just utilize the full Buffer
data as default. To perform streaming, have to configure storage engine of multer
, but it was not easy to determine which option to adjust as default.
On the other hand, fastify
's multipart/form-data
was much easier to handle. This is because streaming could be used right away without any additional settings. Therefore, I had developed @TypedFormData.Body()
to utillize the full data Buffer
to compatible with both express
and fastify
, and planning to apply memory storage to the multer
side by referring to fastify
's options.
Anyway, after I completed this @TypedFormData.Body()
and studied it thoroughly through various experiments, I will contribute to Nest Document. The next PR may be the next month.
- https://nestia.io/docs/core/TypedFormData/
- https://github.com/samchon/nestia/blob/master/packages/core/src/decorators/TypedFormData.ts
- https://github.com/samchon/nestia/blob/master/packages/core/src/programmers/TypedFormDataBodyProgrammer.ts
from nest.
The thing is, it can accept Readable
as you mentioned, with the right configuration. While it may be a better solution, in terms of memory management, it's also a more advanced solution in terms of Node API knowledge as not everyone is well versed with streams, and it's a breaking change at the moment. We'd have to make sure to update the docs to show how the stream could be worked with, and probably be ready to answer many, many more questions on how to use the newer approach, which would inevitably be sent to Discord or StackOverflow and answered there.
While I do think that better memory management is a good thing, there is a balance to be kept between efficient and ergonomic API for developers.
from nest.
Perhaps we can make a mention in the docs and the default of buffer and how to use streams if that is the desired approach and why you might want to do that
from nest.
If hope to avoid breaking change, I think NestJS guide document must warn the memory problem, and give an example code converting to the streaming strategy.
from nest.
Related Issues (20)
- When I introduce a configuration file from outside the project, an error occurs: Cannot find module HOT 3
- circular dependecy error due to reflect-metadata dependency HOT 1
- Validation Pipe is not executed HOT 2
- Use multiple env files HOT 1
- Calling grpcClient.start in server-grpc is no longer necessary since version 1.10.x HOT 2
- Error: Unknown authentication strategy "jwt" for Project with multi apps projects HOT 11
- How can I override nest's default logger using the fastify adapter's built-in logger? HOT 1
- Param decorator not extracting value when TypeOrmModule is imported to a module HOT 1
- Add path alias to nest new HOT 10
- examples: Consider upgrading GraphQL example to demonstrate field resolvers HOT 1
- TypeOrmModule causes controller params to be undefined HOT 8
- Unable to run application after install @nestjs/platform-express HOT 3
- Calling a service cause app to use 100% CPU
- Add custom exception on Versioning HOT 1
- New project setup is failing
- Add a ParseNullPipe to the common library HOT 1
- Security Vulnerability on NestJS HOT 5
- double middleware execuation HOT 5
- Exclude Global Prefix + Middleware leads to wrong params HOT 2
- ESM support HOT 8
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 nest.