An overview on properly crafting an Http request in a NestJS controller

I'm currently setting up a NestJS controller and have been using any as the type for the request. Is there a more precise type I could use to ensure stronger typing?

@Controller('endpoint')
@UsePipes(new MongoSanitizePipe())
export class RequestController {
    constructor(private service: Service) {}

    @Post('post')
    async onAction(
        @Body() body: RequestBody,
        @Request() request: any,
    ): Promise<void> {
        return this.service.onAction(body, request.headers);
    }
}

What experimentation have you done and what outcome were you expecting?

I've searched for a specific HttpRequest type without success.
I hoped to find a way to properly define its type.

Answer №1

In the example provided by NestJs, they demonstrate the use of the example using the Request class from express. This approach is also followed in projects at my company:

import { Controller, Get, Req } from '@nestjs/common';
import { Request } from 'express';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(@Req() request: Request): string {
    return 'This action returns all cats';
  }
}

If you are utilizing fastify, there is a FastifyRequest available within the package that you can import instead.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Guide on importing JavaScript into TypeScript without using noImplicityAny and while not allowing Js

In my development setup, I am utilizing Webpack along with @babel/typescript to compile a project that consists of a mix of TypeScript and JavaScript. To ensure better typing and take advantage of the benefits it offers, I have enabled the --noImplicitAny ...

Resetting a Template-Driven form in Angular using programming techniques

Exploring Angular/Typescript as a newcomer with the use of Template-Driven forms in Angular 10. Attempting to reset the form without submitting it or relying on button clicks. Despite researching similar issues, they all entail submitting the form for a re ...

Can you explain how parameters are being transferred to the onClick function?

While examining some code, I noticed the following snippet: <temp onClick={this.onSelected} /> The onSelected function appears to be defined like this: onSelected = (id: string) => { [...] } I'm curious how the id: string is being pas ...

Having trouble assigning the class property in Angular 5

Upon loading the page, a list of products is retrieved from an external JSON source. Each product in the list has a corresponding BUY button displayed alongside it, with the ID of the respective product assigned to the button. The intention is that when a ...

Configuring Monaco Editor in React to be in readonly mode

Here is a code snippet to consider: import React from "react"; import Editor from "@monaco-editor/react"; function App() { return ( <Editor height="90vh" defaultLanguage="javascript" defa ...

Execution issue with Typescript function

In my Nativescript project, I have the following TypeScript file: import { Observable } from 'tns-core-modules/data/observable'; import { isIOS } from "tns-core-modules/platform"; import { Color } from "tns-core-modules/color"; import { request, ...

Setting the default value for a useRef<HTMLInputElement> in ReactJs with Typescript

Is there a way to assign a number as the initial value on useRef<HTMLInputElement> without using useState<number>() since the field is a simple counter? Below is my TypeScript code: const MyComponent = () => { const productAmountRef = us ...

The Fusion of Apollo GraphQL Server and TypeScript: A Match Made

Lately, I've been immersed in a project that utilizes the node.js + express + typescript + Apollo server stack. During my research on Apollo client, I came across the TypeScript section, but surprisingly found little information regarding TypeScript f ...

The 'replace' property is not found in the 'IData' type. What is the missing piece?

I am trying to implement a cast function that can handle strings containing numbers as input. Unfortunately, I am encountering an issue with the "replace()" method when using regex. Does anyone know how I can define the use of "replace()" within the IData ...

The combination of TypeScript decorators and Reflect metadata is a powerful tool for

Utilizing the property decorator Field, which adds its key to a fields Reflect metadata property: export function Field(): PropertyDecorator { return (target, key) => { const fields = Reflect.getMetadata('fields', target) || []; ...

Is it possible to dynamically synchronize object types in TypeScript based on each other?

In my quest to sync my Russian and English language dictionaries dynamically, I encounter a challenge. Imagine having two objects: const ru = { 'page.main.hello': 'Привет!' } const en = { 'page.main.hello': 'Hi!&a ...

ReactTS: Tips for organizing child components within a "container component"

Currently, I am in the process of developing reusable front-end components in React using Typescript. However, I am encountering a challenge related to a feature commonly found in traditional packages. My goal is to have the ability to nest children of a ...

Tips for using Cookie Service in Angular 2

I am struggling to remove a specific cookie from my system and I don't have access to the necessary package that can help me resolve this issue. ...

How to prevent duplicate database entries in Angular forms?

Currently, I am working on a project using Angular and TypeScript. The goal is to retrieve a list of users from an API and allow for the addition of new users. However, I am struggling with determining how to verify if a user with a specific name already e ...

Universal key and attribute retrieval function

Currently, I am attempting to analyze the characteristics of objects within arrays. In order to maintain type safety, I am utilizing a getter function to access the child object of the array objects (if necessary) that contains the specific property to be ...

Why is there an error when trying to assign Type '{}' in generics typescript?

I'm having trouble understanding why this code is causing an error. The error message says - Type '{}' is not assignable to type 'Keys<T>'. type Keys<T extends string|symbol>={ [key in T]: string; }; const foo = < ...

Prisma Remix is throwing a TypeError: "The function (0, import_prisma.createNote) is not defined as a function."

In my project, I wrote a function using the prisma client which is being called from the notes.tsx route in remix. export async function createNote(entity: { title: string, description: string }) { const note = await prisma.note.create({ data: ...

Prevent Angular from automatically scrolling to the top when subscribing to a timer

I have a real-time updating list of orders that is scrollable. This is the main component, where the list gets updated every 2 minutes with the following setup: ngOnInit(): void { this.internalError = false; this.subscription = timer(0, 120 * 1000) ...

Creating a Type in React TypeScript that allows for null values in createContext: what you need to know

I am facing an issue related to TypeScript while creating a modal context using TypeScript. I want to set null as the default value in createContext, but this is causing a TypeScript error. import React from 'react'; type TModal = boolean; type ...

Creating a layered image by drawing a shape over a photo in Ionic using canvas

While there are plenty of examples demonstrating how to draw on a canvas, my specific problem involves loading a photo into memory, adding a shape to exact coordinates over the photo, and then drawing/scaling the photo onto a canvas. I'm unsure of whe ...