8

I'm trying to use express at my React-Typescript SPA. But It's giving me the error:

    TypeError: Cannot read properties of undefined (reading 'prototype')
(anonymous function)
node_modules/express/lib/response.js:42
  39 |  * @public
  40 |  */
  41 | 
> 42 | var res = Object.create(http.ServerResponse.prototype)
  43 | 
  44 | /**
  45 |  * Module exports.

I've tried adding target: "node" to my "node_modules/react-scripts/config/webpack.config.js" But it won't work...

Here's some ways I've already tried to solve it:

    import express from "express";
    app = express();
---------------
    import express from "express";
    let app: express.Application;
    app = express();
-------------

    import express from "express";
    let app: any;
    app = express();

-------------
    const express require("express");
    let app: express.Application;
    app = express();
8
  • I think the problem is you forgot to instantiate app with const, var, or let for the first example, since it should work. Commented Sep 2, 2021 at 1:57
  • duplicate: stackoverflow.com/questions/56880311/… Commented Sep 2, 2021 at 1:59
  • @KennethLew sorry I copied incorrectly, but my I was using const app = express() Commented Sep 2, 2021 at 2:22
  • @KennethLew I saw that post, but It didn't work for me... Commented Sep 2, 2021 at 2:23
  • perhaps try import * as express from "express" Commented Sep 2, 2021 at 2:27

3 Answers 3

9

You have to instantiate both the app and express, use the const keyword as well.

const express = require('express');
const app = express();

Also, look for anywhere in your code base where you have:

import { response } from 'express';

Often this is put in by mistake and removing this line may solve the error

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks a lot. It was this thing: "import { response } from 'express". Spent an hour looking for the problem, you saved me a log of time)
3

Faced same issue

it was imported under

import e from "express";

not sure cuz of any random IntelliSense extension or maybe the GH copilot auto-completion

1 Comment

YES my VSCode added that line to the top of my file randomly.... thank you !
1

faced the same issue

var res = Object.create(http.ServerResponse.prototype)

change it to

let res = Object.create(http.ServerResponse.prototype)

1 Comment

That's interesting, I wonder why changing from function scoped to block scoped fixes the problem?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.