APIサーバーのユニットテストでサーバー起動ロジックを切り分けたあとのscripts

## 背景
TypeScript × Express × Prisma で開発しているAPI[サーバーのユニットテストを実施するため、ts-jestを導入。
その際に、Expressの app.ts(メインのファイル) に記述していたサーバー起動のロジックを別ファイル server.tsに切り分け、それに伴って package.jsonの scriptsを変更。

## 実際のコード

```typescript: /api/src/app.ts before
import express from 'express';
import transactionsRouter from './router/transactions';
import userRouter from './router/user';
import categoriesRouter from './router/categories';
import cors from 'cors';
import morgan from 'morgan'; 
import dotenv from 'dotenv' 
import logger from './log/winston'; 
import stream from './log/morgan'; 
import { PrismaClient } from '@prisma/client';

dotenv.config();

const app = express();
const prisma = new PrismaClient();
const port = 4000;

app.set('prisma', prisma);

app.use(cors());
app.use(express.json());
app.use(morgan('combined', {stream}));
app.use('/user',  userRouter); //morgan('combined', {stream}),
app.use('/transactions', transactionsRouter); //morgan('combined', {stream}), 
app.use('/categories', categoriesRouter); //morgan('combined', {stream}), 

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(port, () => {
    logger.info(`サーバーが正常に起動しました: http://localhost:${port}`)
});

export default app;
```
(importやコードの記述順などは大目に見てください。笑）

これを以下に分割する

```typescript: /api/src/app.ts afetr

import express from 'express';
import transactionsRouter from './router/transactions';
import userRouter from './router/user';
import categoriesRouter from './router/categories';
import cors from 'cors';
import morgan from 'morgan'; 
import dotenv from 'dotenv' 
import logger from './log/winston'; 
import stream from './log/morgan'; 
import { PrismaClient } from '@prisma/client';

dotenv.config();

const app = express();
const prisma = new PrismaClient();
const port = 4000;

app.set('prisma', prisma);

app.use(cors());
app.use(express.json());
app.use(morgan('combined', {stream}));
app.use('/user',  userRouter); //morgan('combined', {stream}),
app.use('/transactions', transactionsRouter); //morgan('combined', {stream}), 
app.use('/categories', categoriesRouter); //morgan('combined', {stream}), 

app.get('/', (req, res) => {
    res.send('Hello World!');
});

export default app;
```

```typescript: /api/src/server.ts

import app from "./app";
import logger from "./log/winston";

const port = 4000;

app.listen(port, ()=>{
    logger.info('サーバーが4000番で正常に起動しました。')
});
```

これに伴って、package.jsonのscriptsを編集。
```json-doc  package.json: before
{
  "name": "api",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "dev": "ts-node src/app.ts",
    "build": "tsc",
    "start": "node build/app.js",
    "start:debug": "nodemon -L --inspect=0.0.0.0:9229 build/app.js",
    "test": "jest"
  },
  ...
  ```


```json-doc package.json: after

{
  "name": "api",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "dev": "ts-node src/app.ts",
    "build": "tsc",
    "start": "node build/server.js",
    "start:debug": "nodemon -L --inspect=0.0.0.0:9229 build/app.js",
    "test": "jest"
  },
  ...
  ```

:::note info
💡変更点
  BEFORE: `"start": "node build/app.js`
  AFTER:  `"start": "node build/server.js"`
:::

ほんの少しのことですが、初心者は「サーバーが立ち上がらない...」
と、容易にポカーンとしてしまうので、記録。