Custom Entrypoint
The instance of fastify or express is created in server/service/app.ts
and is started in server/entrypoint/index.ts
.
$/service/app.ts
: to access the server instance to register plugins$/entrypoint/index.ts
: to change the IP address or port to listen.
Example
info
The following codes are modified from the code generated by create-frourio-app.
- Fastify
- Express
$/service/app.ts
import Fastify, { FastifyServerFactory } from 'fastify';
import helmet from '@fastify/helmet';
import cors from '@fastify/cors';
import fastifyJwt from '@fastify/jwt';
import { API_JWT_SECRET, API_BASE_PATH } from '$/service/envValues';
import server from '$/$server';
export const init = (serverFactory?: FastifyServerFactory) => {
const app = Fastify({ serverFactory });
app.register(helmet);
app.register(cors);
app.register(fastifyJwt, { secret: API_JWT_SECRET });
server(app, { basePath: API_BASE_PATH });
return app;
};
$/entrypoints/index.ts
import { init } from '$/service/app';
import { API_SERVER_PORT } from '$/service/envValues';
init().listen(API_SERVER_PORT, '0.0.0.0');
$/service/app.ts
import express from 'express';
import helmet from 'helmet';
import cors from 'cors';
import server from '$/$server';
import { API_BASE_PATH } from '$/service/envValues';
export const init = () => {
const app = express();
app.use(helmet());
app.use(cors());
server(app, { basePath: API_BASE_PATH });
return app;
};
$/entrypoints/index.ts
import { init } from '$/service/app';
import { API_SERVER_PORT } from '$/service/envValues';
const app = init();
app.listen(API_SERVER_PORT);