Debugging
When debugging your code, you can use more than just console.log or attaching the node process to a debugger. You can also use the following methods for debugging.
Note: The following methods are only effective when the instance is running with debugInfo=true.
Using ctx.set('json', obj)
To pass a custom object to ctx.set('json', obj) for debugging, follow these steps:
- Create your custom object.
- Pass your object to
ctx.set('json', obj). - Access the corresponding route with query string
format=debug.jsonto view your object. For example, if you want to debug the route/furstar/characters/:lang?, you can access the URL:/furstar/characters/en?format=debug.json
Here's an example of how to use ctx.set('json', obj) taken from furstar/index.ts
const info = utils.fetchAllCharacters(res.data, base);
ctx.set('json', {
info,
});In the example above, we're passing the info object to ctx.set('json', obj), which we can then access using the corresponding route with query string format=debug.json.
debug.html
In order to quickly test if the description in ctx.set('data', obj) is correct, you can use the query string format={index}.debug.html to obtain the HTML of the corresponding entry. The link can be directly opened in the browser to preview the rendering result.
Usage: Access the corresponding route with query string format={index}.debug.html, where {index} is the item number (starting from 0) in your data.item. And the data corresponds to the data.item[index].description information will be returned as route result.
