Це відео не доступне.
Перепрошуємо.

TypeScript and NodeJS: The Proper Setup!

Поділитися
Вставка
  • Опубліковано 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

КОМЕНТАРІ • 28

  • @ballonura
    @ballonura Рік тому +11

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

    • @kevinolds9614
      @kevinolds9614 Рік тому +2

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

  • @piiaall
    @piiaall Рік тому +2

    Your explanation is very clear

  • @LorenzoJimenez
    @LorenzoJimenez 9 місяців тому

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

  • @greggsworld4453
    @greggsworld4453 Рік тому +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 9 місяців тому +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

  • @kurtking4662
    @kurtking4662 Рік тому

    Enjoyed watching your video!

  • @piotrjasiulewicz408
    @piotrjasiulewicz408 5 місяців тому

    god tier level video

  • @phongnguyen.5322
    @phongnguyen.5322 8 місяців тому

    Many help, thank you

  • @reihane2325
    @reihane2325 8 місяців тому

    thanks , so helpful

  • @user-qn8if8bb7x
    @user-qn8if8bb7x 9 місяців тому

    Amazing!

  • @NoName-qu3tw
    @NoName-qu3tw 10 місяців тому

    Great! Thank you!

  • @muhammadbilalmalik7292
    @muhammadbilalmalik7292 8 місяців тому

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

  • @ramiworkstation
    @ramiworkstation Місяць тому

    Sweet like Sugar 🍬🍬

  • @ilearncode7365
    @ilearncode7365 Рік тому

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

  • @onequy6648
    @onequy6648 11 місяців тому

    gooodddd, thank youuuu

  • @naumanshigri
    @naumanshigri 6 місяців тому

    belot han ongs na sokor yaa

  • @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 11 місяців тому +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 11 місяців тому

      yeah LinkedIn and nasa are just hobby backend thing

    • @redeemr
      @redeemr 8 місяців тому

      @@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 8 місяців тому

      @@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 2 місяці тому

      Express has around 22M+ weekly downloads as of today

  • @okage_
    @okage_ Рік тому

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

  • @scorcism.
    @scorcism. Рік тому

    subscribed

  • @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 8 місяців тому +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.