UNPKG

@loopback/docs

Version:

Documentation files rendered at [https://loopback.io](https://loopback.io)

74 lines (54 loc) 1.88 kB
--- lang: en title: 'API docs: core.application.service' keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI sidebar: lb4_sidebar editurl: https://github.com/loopbackio/loopback-next/tree/master/packages/core permalink: /doc/en/lb4/apidocs.core.application.service.html --- <!-- Do not edit this file. It is automatically generated by API Documenter. --> [Home](./index.md) &gt; [@loopback/core](./core.md) &gt; [Application](./core.application.md) &gt; [service](./core.application.service.md) ## Application.service() method Add a service to this application. <b>Signature:</b> ```typescript service<S>(cls: ServiceOrProviderClass<S>, nameOrOptions?: string | ServiceOptions): Binding<S>; ``` ## Parameters | Parameter | Type | Description | | --- | --- | --- | | cls | [ServiceOrProviderClass](./core.serviceorproviderclass.md)<!-- -->&lt;S&gt; | The service or provider class | | nameOrOptions | string \| [ServiceOptions](./core.serviceoptions.md) | | <b>Returns:</b> [Binding](./context.binding.md)<!-- -->&lt;S&gt; ## Example ```ts // Define a class to be bound via ctx.toClass() @injectable({scope: BindingScope.SINGLETON}) export class LogService { log(msg: string) { console.log(msg); } } // Define a class to be bound via ctx.toProvider() import {v4 as uuidv4} from 'uuid'; export class UuidProvider implements Provider<string> { value() { return uuidv4(); } } // Register the local services app.service(LogService); app.service(UuidProvider, 'uuid'); export class MyController { constructor( @inject('services.uuid') private uuid: string, @inject('services.LogService') private log: LogService, ) { } greet(name: string) { this.log(`Greet request ${this.uuid} received: ${name}`); return `${this.uuid}: ${name}`; } } ```