TypeScript and NodeJS: The Proper Setup!

Поделиться
HTML-код
  • Опубликовано: 23 дек 2024

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

  • @Vegasguy79
    @Vegasguy79 Месяц назад +1

    Such a quick and clear tutorial. Wonderful job!

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

    Your explanation is very clear

  • @kennedydre8074
    @kennedydre8074 2 месяца назад

    Great video, I am having a problem, I can’t use ts-node with esm, I keep getting an error

  • @ballonura
    @ballonura 2 года назад +12

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

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

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

  • @MdSalman-w8g
    @MdSalman-w8g 2 месяца назад

    where can I find that wallpaper

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

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

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

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

  • @Imam_Faheem_khan
    @Imam_Faheem_khan 2 месяца назад

    thanks man, step by step explan.. really help

  • @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 Год назад +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

  • @TechAlly-07
    @TechAlly-07 3 месяца назад

    thanku brother for this valuable information

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

    Enjoyed watching your video!

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

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

  • @phongnguyen.5322
    @phongnguyen.5322 Год назад

    Many help, thank you

  • @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 Год назад +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 Год назад

      yeah LinkedIn and nasa are just hobby backend thing

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

      @@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 Год назад

      @@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 7 месяцев назад

      Express has around 22M+ weekly downloads as of today

  • @PavanKumar-g7v1q
    @PavanKumar-g7v1q Год назад

    Amazing!

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

    god tier level video

  • @NoName-qu3tw
    @NoName-qu3tw Год назад

    Great! Thank you!

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

    thanks , so helpful

  • @patelronak153
    @patelronak153 3 месяца назад

    Great🚀🚀❤❤

  • @okage_
    @okage_ 2 года назад

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

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

    belot han ongs na sokor yaa

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

    gooodddd, thank youuuu

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

    Sweet like Sugar 🍬🍬

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

    subscribed

  • @statuschannel8572
    @statuschannel8572 2 месяца назад

    don't use ts-node use vite-node and save your time!

  • @brwka
    @brwka 20 дней назад

    it's not good tutorial you why you don't show how to use modules etc. ?

  • @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 Год назад +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.