# Server

### Initializing server instance

```typescript
// Server({port?: number, cors?: string | string[]})
// Default port: 4000
const server: Server = new Server({});
```

#### Starting up server

Everything inside callback in the listen function is called before server starts to listen.

```typescript
import { Server } from '@arcend/core';

const server: Server = new Server({});
server.listen(async() => {
    console.log('API listening on: http://localhost:4000');
});
```

#### Loading routes

Routing is directory-based, you can load routes from any directory in source code folder, but it may produce some duplicates if you make more than one route.ts in routes directory directly.

```typescript
import { Server } from '@arcend/core';

const server: Server = new Server({});
server.listen(async() => {
    await server.loadRoutes('user_routes');
    await server.loadRoutues('shop_routes');
    console.log('API listening on: http://localhost:4000');
});
```
