I'm learning Express. While doing a tutorial, I stopped to try to figure out why the tutor used express.urlencoded({extended: false}). I learned what url-encoding is, and I've read descriptions on the true or false values for the extended option, but I'm still not sure why we have to put extended: false in this app. I know it's because we are storing input from a form, and that input has to be parsed to be usable in the req.body object. But the best documentation on the extended option says that a true value uses the qs library and allows for rich objects and arrays in our body object, whereas false uses the querystring library which only allows a string or an array.
So, is a "rich" object just a nested object? (Same with array?) And why would we set extended to false?
If you look at the qs docs, you can see what kinds of objects it can parse beyond the usual key-value pairs of query strings.
If you don't want that, the parsing's presumably a lot more complicated than parsing a regular query string, so not doing that extra work should be beneficial to performance/just make your application simpler.