// | ------------------------------------------------------------ // | @版本: version 0.1 // | @创建人: 【Nie-x7129】 // | @E-mail: x71291@outlook.com // | @所在项目: fastify-template // | @文件描述: app.js - // | @创建时间: 2023-12-16 18:09 // | @更新时间: 2023-12-16 18:09 // | @修改记录: // | -*-*-*- (时间--修改人--修改说明) -*-*-*- // | = // | ------------------------------------------------------------ const ENV = process.argv[2]?.trim().toLowerCase() || 'production' const isDev = ENV == 'development' || ENV == 'dev' || ENV == 'develop' import Fastify from "fastify"; import logger from "./logger.js"; import root from "./routes/index.js"; const fastify = new Fastify({ logger: { base: null, // timestamp: false, transport:{ target: 'pino-pretty', options: isDev && { // translateTime: 'HH:MM:ss Z', ignore: 'pid,hostname', }, }, serializers: { res (reply) { // The default return `statusCode: ${reply.statusCode}` }, req (request) { return request.ip + ':' + request.socket.remotePort + ' ==> ' + request.method.toUpperCase() + ' - ' + request.hostname + request.url; } } } }); fastify.decorate('logger',logger) // 请求拦截 fastify.addHook('onRequest', function (request, reply, done) { // isDev && (this.logger.debug(`<== ${request.method.toUpperCase()} - ${request.routeOptions.url}`)); // isDev && (request.startTime = performance.now()); done(); }) // 响应拦截 fastify.addHook('onResponse', function (request, reply, done){ // isDev && (this.logger.debug(`==> ${(performance.now() - request.startTime).toFixed(4)}ms `)) done(); }); fastify.register(root, {prefix: '/api'}) async function start(){ try { const a = await fastify.listen({ port: 3000, host: '0.0.0.0', }) // console.log(fastify.printPlugins()) console.log(fastify.printRoutes({ commonPrefix: false })); // console.log(fastify.printRoutes({ method: 'GET' })); }catch (e) { console.error('项目启动失败', e) } } start()