TypeScript and NodeJS: The Proper Setup!

Поделиться
HTML-код
  • Опубликовано: 3 дек 2022
  • Let's set up TypeScript with NodeJS properly! To do that, we'll take a look at what precompiling is, to then look at how TypeScript gets compiled to Javascript in action. Really interesting stuff. And after understanding that, we can take a look at an npm-package that does that stuff under the hood for us.
    Thanks for watching, I hope you found this as interesting as I did! Cheers
  • НаукаНаука

Комментарии • 32

  • @piiaall
    @piiaall Год назад +2

    Your explanation is very clear

  • @kurtking4662
    @kurtking4662 10 месяцев назад

    Enjoyed watching your video!

  • @phongnguyen.5322
    @phongnguyen.5322 6 месяцев назад

    Many help, thank you

  • @greggsworld4453
    @greggsworld4453 11 месяцев назад +1

    This was great! Thank you so much. It would be great if you added server restart on code changes to avoid having to start and stop - like nodemon.

    • @Theforrestfire217
      @Theforrestfire217 8 месяцев назад +5

      Hi greggsworld. You should be able to do that with something like this:
      "dev": "tsc-watch --onSuccess \"yarn start\"",
      "start": "node dist/app.js"
      using tsc-watch will keep an eye out for code changes

  • @user-qn8if8bb7x
    @user-qn8if8bb7x 7 месяцев назад

    Amazing!

  • @reihane2325
    @reihane2325 6 месяцев назад

    thanks , so helpful

  • @NoName-qu3tw
    @NoName-qu3tw 9 месяцев назад

    Great! Thank you!

  • @LorenzoJimenez
    @LorenzoJimenez 8 месяцев назад

    You actually forgot to install typescript as a full complete explanation. Thanks for the video

  • @piotrjasiulewicz408
    @piotrjasiulewicz408 4 месяца назад

    god tier level video

  • @joachimpenserot8651
    @joachimpenserot8651 Год назад

    Hey, can you make a video explaining hot set up next-auth with a local database?

  • @ballonura
    @ballonura Год назад +10

    Why dir called "server" and no "src"? (naming best practice)

    • @kevinolds9614
      @kevinolds9614 Год назад +2

      I was going to ask this. Still, great video.

  • @ilearncode7365
    @ilearncode7365 11 месяцев назад

    how does tsc still work after you moved it into a folder? That doesnt make sense.

  • @onequy6648
    @onequy6648 10 месяцев назад

    gooodddd, thank youuuu

  • @muhammadbilalmalik7292
    @muhammadbilalmalik7292 6 месяцев назад

    how tsc command is automatically executing server/index.ts ?

  • @okage_
    @okage_ Год назад

    do you have a link to your github or is it private

  • @scorcism.
    @scorcism. Год назад

    subscribed

  • @ponchobob
    @ponchobob Год назад

    maybe for some others here a simple or stupid question, but is nodejs used in big companies for their backend? or is this just some sort of "hobby backend library" ?

    • @0xSLN
      @0xSLN 10 месяцев назад +2

      Probably the biggest in the industry. What else compares in adoption?
      Low level systems use a lot of C but companies want many good devs and good libs. So community size is a proxy for that. Js has biggest community, node is server js.

    • @tropicalreptile6288
      @tropicalreptile6288 10 месяцев назад

      yeah LinkedIn and nasa are just hobby backend thing

    • @redeemr
      @redeemr 7 месяцев назад

      @@0xSLN javascript is so big because it is basically required on the front-end. On the back-end, there are tons of options that are faster and more mature than node.js. I doubt it's the most popular.

    • @0xSLN
      @0xSLN 7 месяцев назад

      @@redeemr Its based on number of projects on github. But popular doesn't equal best, lots of langs that are better at specific things.

    • @samking618
      @samking618 Месяц назад

      Express has around 22M+ weekly downloads as of today

  • @ramiworkstation
    @ramiworkstation 10 дней назад

    Sweet like Sugar 🍬🍬

  • @mikeonthebox
    @mikeonthebox 8 месяцев назад

    8:20 Wait what? That wouldn't work on Browsers, you can't import a Node Library like the fs one, in a browser, right?

    • @redeemr
      @redeemr 7 месяцев назад +2

      node doesn't run in browsers.

    • @amvids9348
      @amvids9348 Месяц назад

      had the same doubt, yeah ur correct, brainfade from the guy.

  • @naumanshigri
    @naumanshigri 5 месяцев назад

    belot han ongs na sokor yaa

  • @WarframeCrunch
    @WarframeCrunch Год назад

    I don't know why I'm getting this error :/
    \middleware\errorHandler.ts:45
    export default errorHandler;
    ^^^^^^
    SyntaxError: Unexpected token 'export'
    My server.ts file:
    const express = require("express");
    const errorHandler = require("./../middleware/errorHandler");
    const dotenv = require("dotenv").config();
    const app = express();
    const port = process.env.PORT || 5000;
    app.use(express.json());
    app.use("/api/contacts", require("./../routes/contactRoutes"));
    app.use(errorHandler);
    app.listen(port, () => {
    console.log(`Server running on port ${port}`);
    })
    and
    errorHandler.ts file:
    import {Request, Response} from 'express';
    type typeErrorHandler = {
    err: {message: string, stack: string[]},
    req: Request,
    res: Response,
    next: string,
    }
    const errorHandler = ({err,req,res,next} : typeErrorHandler) =>{
    const statusCode = res.statusCode ? res.statusCode : 500;
    switch (statusCode) {
    case 400: res.json({
    title: "Validation Failed",
    message: err.message,
    stack: err.stack,
    })
    break;
    case 401: res.json({
    title: "Un authorized",
    message: err.message,
    stack: err.stack,
    })
    break;
    case 403: res.json({
    title: "Forbidden",
    message: err.message,
    stack: err.stack,
    })
    break;
    case 404: res.json({
    title: "Not found",
    message: err.message,
    stack: err.stack,
    })
    break;
    case 500: res.json({
    title: "Server Error",
    message: err.message,
    stack: err.stack,
    })
    break;
    default:
    console.log('No error, all good.');
    break;
    }
    }
    export default errorHandler;

    • @redeemr
      @redeemr 7 месяцев назад +1

      you're mixing require and esm syntax. You should look into what adding "type": "module" does or what using the .cjs and .mjs file extensions do. I'm sure you've already solved the problem but I'm just leaving this here for future reference.