I'm trying to create the express server for my project in an external module. Everything works fine until I try to do something with the app object in my main file.
server.ts:
import express from "express";
import OutputLevel from "../types/OutputLevels";
class Server {
/**
* Creates an express web server
* @param {Number} port The port the server is listening on
* @param {OutputLevel} [outputLevel] The level of console output (commonly based on CLI arguments) {@link OutputLevel}
* @returns {Express}
*/
constructor(port: Number, outputLevel?: OutputLevel) {
const app = express();
app.listen(port, () => {
if (outputLevel && outputLevel >= 2) console.log(`[Server @ ${port}] Listening @ http://localhost:${port}`);
});
return app;
}
}
export default Server;
index.ts:
import Server from "./server/server";
import OutputLevel from "./types/OutputLevels";
let app = new Server(2020, OutputLevel.INFO);
app.get("/", (req, res) => {
res.send("hello world")
});
The get part gets marked as an error by intellisense with the note Property 'get' does not exist on type 'Server'.. Maybe this has something to do with me using classes and constructors instead of functions, but I'm trying to use a class here.