gonest
Core Concepts

Modules

Wiring providers, controllers, and pipeline stages together

A Module is the unit gonest bootstraps. Build one with gonest.NewModule(func(module *gonest.Module) {...}).

var UserModule = gonest.NewModule(func(module *gonest.Module) {
  module.Providers(UserProvider)
  module.Controllers(UserController)
})

Methods

MethodDescription
Providers(...)Register providers owned by this module.
Controllers(...)Register controllers owned by this module.
Imports(...)Import other modules, gaining access to their exported providers.
Exports(...)Expose providers to modules that import this one.
Use(...)Register global middleware. Root module only.
Filters(...)Register global exception filters. Root module only.
Listeners(...)Register event listeners for the Event Emitter.
Schedulers(...)Register Scheduler jobs.
Name("...")Set a readable name used in error messages.

Use and Filters are root-only when applied at the module level — they apply globally to every request. Per-controller Use/Filters also exist (see Request Pipeline) and combine with the global ones.

Applying global middleware and filters

var AppModule = gonest.NewModule(func(module *gonest.Module) {
  module.Use(RequestIdMiddleware)
  module.Filters(FooFilter)
})

Next steps

On this page