Skip to content

Instantly share code, notes, and snippets.

import * as fastify from "fastify";
import * as http from "http";
declare module "fastify" {
export interface FastifyInstance<
HttpServer = http.Server,
HttpRequest = http.IncomingMessage,
HttpResponse = http.ServerResponse
> {
blipp(): void;
"dev": "ts-node --files ./src/index.ts"
npm i mongoose @types/mongodb @types/mongoose
version: '3'
services:
mongodb:
image: mongo:3.6.0
ports:
- "27017:27017"
volumes:
- dbvolume:/data
environment: {
AUTH: "no"
import { Document, Schema, Model, model } from "mongoose";
export interface VehicleDocument extends Document {
year: number;
name: string;
createdDate: Date;
}
export interface VehicleModel extends VehicleDocument {}
import { Model } from "mongoose";
import * as Mongoose from "mongoose";
import { VehicleModel, Vehicle } from "./models/vehicle";
import * as fp from "fastify-plugin";
export interface Models {
Vehicle: Model<VehicleModel>;
}
import * as fastify from "fastify";
import * as http from "http";
import { Db } from "../modules/db";
declare module "fastify" {
export interface FastifyInstance<
HttpServer = http.Server,
HttpRequest = http.IncomingMessage,
HttpResponse = http.ServerResponse
> {
import * as fp from "fastify-plugin";
export default fp(async (server, opts, next) => {
server.get("/vehicles/:id", {}, async (request, reply) => {
try {
const _id = request.params.id;
const vehicle = await server.db.models.Vehicle.findOne({
_id
});
// at the top
import vehiclesRoutes from "./modules/routes/vehicles";
import db from "./modules/db";
// after server was created
server.register(db, { uri: "mongodb://localhost:27017/vehicles" });
server.register(vehiclesRoutes);
npm i jest ts-jest @types/jest