Docs
Routing
Customizing Response

Customizing Response

#Prewrite

prewrite helps you customize res.send.

WARNING

res.end doesn't support usePrewrite. Use res.send instead.

It can be used directly in page files, and can also be used in middleware and plugins.

Typescript
import { usePrewrite } from 'zely';
 
export function get(ctx) {
  usePrewrite(ctx.response, (data) => {
    return `I love ${data}`;
  });
  res.send('cat'); // I love cat
}

#SetSender

Unlike prewrite, res.send is 100% customizable if you use setSender.

Before sending data using res.send, setSender must be called for the new sender to be applied. So it is recommended to use it in the config file.

Typescript
import { defaultSender, setSender } from 'zely';
 
setSender(async (req, res, chunk, status) => {
  console.log(`response: ${JSON.stringify(chunk)} (request: ${req.url})`);
  defaultSender(req, res, chunk, status);
});
  • output
Plain
$ zely dev
...
response: {"id":2,"nickname":""} (request: /hello/test)

#prewrite vs setSender