Fullstack Node iOS - Intro to SailsMVC REST API and Routes (Ep 1)

Поділитися
Вставка
  • Опубліковано 16 лис 2024

КОМЕНТАРІ • 123

  • @maxcodes
    @maxcodes 5 років тому +18

    There's something really satisfying about JSON and seeing it flow into applications.

  • @geekthegeek730
    @geekthegeek730 4 роки тому

    This is the best channel on UA-cam. This guys simply rocks and genuinely want to share his knowledge.

  • @arturfil
    @arturfil 5 років тому +7

    Can't say how much I'm thankful, the amount of knowledge and value of this is just amazing!

  • @richprice5434
    @richprice5434 5 років тому +15

    Haven’t seen anyone create this as a tutorial ... fantastic content as usual ... I’m in 👍

  • @lancesamaria8130
    @lancesamaria8130 5 років тому +3

    This is exactly what I need to implement deep link Sharing.
    Btw your channel should put all these boot camps out of business. I tried a part time boot camp before and walked out of there with a few terms I didn’t understand, no idea how to build an iOS app (they never even went over git or tableViews), and $3k in debt -a big complete waste of money.
    I’ve learned enough from you to be able to build 3 fully functional apps and I’m working on 2 more.
    Your free courses and paid courses are top notch! Thanks!

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +5

      Boot camps and universities are a big waste of money now that we have great online educators.

    • @lancesamaria8130
      @lancesamaria8130 5 років тому

      Honestly man, like you really don’t know how much you do for self taught devs, especially people who like me who want to launch their own startups (I’m not interested in a job). In 2015 I learned Swift via teamtreehouse but the course after that sucked. Then I learned how to start building tableViews via Lynda but after that course I was pretty much stuck. From there I got an iOS development book from Apress which was the holy grail for me and really got me going but that was the fundamentals on how to build different components (still a fantastic book). This all 2015.
      Where I’m going with this is I’ve tried a ton of things to learn but there is **nothing** that I came across that teaches someone the intricacies involved in building a fully functional app. Your courses are on another level. Your not going to find How to Build Instagram in any book, moocs, boot camp, or school especially with the level of detail you put into it.
      When they have those UA-cam awards they should give you one -every year, lol. If we could nominate you I’m sure all of your students would.
      I tip my hat to you sir 🎩
      ✌🏿✌🏿

  • @thomasengland1701
    @thomasengland1701 5 років тому +1

    This was really impressive. I don't think anyone else is doing this. Good stuff.

  • @israelmanzo8725
    @israelmanzo8725 5 років тому +6

    Great! Full stack application for web and iOS. I love it!! Thank you Brian..!

  • @adrianthomas4163
    @adrianthomas4163 5 років тому

    Nice one Brian.
    FYI. If anyone is using Eslint in their code and are having any issue getting the ID's to show (i.e. at 28:08), when you write the filter return "p.id === postId" ESlint will have you use the strict equality operator '==='.
    If you look at the postId const "const postId = req.param('postId')" postId is a string, so using the strict equality operator is expecting the id's to be strings. In the dummy DB example, the id's are numbers. So just make the id's strings and all should be good.
    Or... just ignore Eslint and use the equality operator as Brian is using (==) and things will still work.
    FYI.
    Good one Brian again.

    • @damilareemmanuel
      @damilareemmanuel 5 років тому +1

      You can wrap the id like this` Number(req.param("Id"))` then use the "===" to check

    • @adrianthomas4163
      @adrianthomas4163 5 років тому +1

      @@damilareemmanuel Yep. That also works.

  • @sweatysweatson9399
    @sweatysweatson9399 5 років тому

    I’ve been looking for them all around udemy but here I am again😁 Thank you very much for creating these tutorials. You are a true Samaritan🙏🙏

  • @nizz4m
    @nizz4m 5 років тому

    I dont mind a long video from your channel. The longer the merrier ! ⭐️ 🌟 ✨

  • @eastafricacoding5864
    @eastafricacoding5864 5 років тому

    Thanks Brain! Been learning js and node js the past few weeks great to have my favorite teacher now teaching it.

  • @_DeProgrammer
    @_DeProgrammer 5 років тому +1

    Great content. Everyone should be thankful this is free! This is better than any course on Udemy.

  • @albaqawi
    @albaqawi 5 років тому +2

    your are always the best Brain I purchased the full course to support you making more and more full project courses like these! Keep it up and well done I love the idea and I hope you extend this course with notifications and then media communication SNAP or Instagram like mode! if possible show how to convert this course into SwiftUI in next courses.... Always your biggest fan from Saudi Arabia! :D

  • @يزيدالمزابي
    @يزيدالمزابي 5 років тому +1

    Proud to be 2bd viewer Prof Brian ❤️❤️❤️

  • @digitalboltwebdesign
    @digitalboltwebdesign 5 років тому

    i have been looking for this type of tutorial for weeks thank you

  • @ShubhamSauravYT
    @ShubhamSauravYT 5 років тому

    Excited for the next 6 videos.
    Thanks Brian!

  • @iamwaseem99
    @iamwaseem99 5 років тому

    Great one Brian!. Thanks for teaching us a new framework. express js seems to be easy to pick up things and learn the features of the backend like routing, etc in detailed...but sails seem to be way easier since the boilerplate code is already available to code instead of managing everything by fragmenting into different files. I started with express but I wish I could've started with sails. waiting for more videos! :D

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +1

      I feel the exact same way, thinking that Express was a good solution to build out an entire app. However after building out the routing and authentication layer myself, I found my entire codebase extremely scattered and painful to look at. Enforcing some structure through Sails is going to be extremely helpful for coding and learning.

  • @phearapickcab7327
    @phearapickcab7327 5 років тому

    Really great. Could you make a video about the way to configuration environment between Development and Production?

  • @maxcodes
    @maxcodes 5 років тому +1

    Glad you are calling it My Journal, instead of making it another "how to build a blog with node & express" course. Making it a bit unique haha.

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому

      Indeed, by the way did you ever get my response to your email?

    • @maxcodes
      @maxcodes 5 років тому

      Lets Build That App yeah! I thought I replied to it maybe I never hit send and it’s a draft.

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +1

      The sample project implements good state management, maybe I'll do a course on that type of architecture in the future.

  • @amitsamant3875
    @amitsamant3875 5 років тому

    Great video cause i understood everything u said even after I don't know a bit about node and backend.

  • @BeekeepingWithKou
    @BeekeepingWithKou 5 років тому

    I’m so excited to start this tomorrow!

  • @arsalanhashemi4469
    @arsalanhashemi4469 5 років тому

    very nice Brian,I was waiting for this

  • @toanuk
    @toanuk 5 років тому

    Hi Brian.
    I have not done Jason. Please can you make a video on store application and create as well.
    Look forward your Jason video.
    Thanks
    Toan

  • @alshezawi2010
    @alshezawi2010 5 років тому

    Thanks man
    SailsMVC seems a great framework, I cannot wait to see you connect it to database.

    • @ijazkhan3335
      @ijazkhan3335 5 років тому +1

      AdonisJs is much better. Try it instead.

    • @jmon24ify
      @jmon24ify 5 років тому

      @@ijazkhan3335 I wish I knew about Adonis before getting into Nest because Adonis. I like Nest but Adonis looks much better.

    • @ijazkhan3335
      @ijazkhan3335 5 років тому

      jmon24ify i like nestJs too, but feel much more confident working with adonis. probably because I have experience using frameworks like ruby on rails and laravel.

    • @jmon24ify
      @jmon24ify 5 років тому

      @@ijazkhan3335 I chose Nest because of it's similarity between Angular, CakePhp and Symfony plus it has comes with Typescript built-in. But I like Adonis more because of how similar it is to Laravel. I've been using Laravel for years and its the only Php framework I recommend. Thanks to your comment, I realized there is a node version of Laravel which makes me want to scrap the API I am building, and rebuild it in Adonis.

  • @cebuanoninoy
    @cebuanoninoy 4 роки тому

    I just discovered your channel and I like what I see so far. But I have a question does your app work on Android phones/tablet aside from iOS based devices?

  • @JustVictor72
    @JustVictor72 5 років тому

    Fantastic! This was the one worth waiting for 🎉🎉👍🏻

  • @GolderiQ
    @GolderiQ 5 років тому

    Of course this course start with a dummy database to quick things up, but as more data is added, parsing the whole collection of posts will add execution time to the application. A more proper way to do it is to point at the data via a key in the collection with the key array notation (collection[id]). With this notation, the JavaScript interpreter reference directly to your object and while not parse the whole array. So the array also will not be just ordered like 0, 1, 2, 3, but will have the real identifiers of the objects as keys. In real database situation with UUID/GUID and databases indexes to speed data access the whole optimization make a lot of sense! Also the GET request with the url params to create the posts is really not to show even for demo purposes. I really understand that this is for demo purpose but a lot of people will not understand the gravity of doing this as they are maybe not familiar with HTTP protocol and the meaning behind it: the whole data is visible while it transit the internet. The correct way to do it is a POST request encapsulated with a TLS layer of protection (HTTPS), yes of course not easy to show in a quick course, but a simple POST request from a GUI client like POSTMAN/INSOMNIA or even HTTPIE/CURL in command line would have be more serious to show. I like your formula tho I'm waiting for the next episodes!

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +3

      Indeed, I normally don’t introduce advance concepts all in one lesson. It takes quite a bit of experience to learn all of this stuff and have it make sense. I prefer handhold one new concept at a time, don’t want to overwhelm the newer folks here.

    • @edison1
      @edison1 5 років тому

      @@LetsBuildThatApp you are the GOAT.

  • @LeviM337
    @LeviM337 2 роки тому

    Amazing tutorial!

  • @EricPLMobileDeveloper
    @EricPLMobileDeveloper 5 років тому

    thanks Brian ! it was so clear explanation . Like it so much

  • @cinquain0
    @cinquain0 5 років тому

    Great job Brian

  • @idembele
    @idembele 5 років тому

    Hi Brian. Thnaks a lot for crezting free content to us; What makes you choose Visual studio instead of Atom or other IDE?

  • @rogerwprice
    @rogerwprice 5 років тому

    big thanks - very clear and very interesting

  • @yoellev5191
    @yoellev5191 5 років тому

    Thank you Brian great tutorial

  • @yurkozhuk7598
    @yurkozhuk7598 5 років тому

    Hey, for opening folder project in vscode from terminal, u can use 'code .' command

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому

      This is only true if you install the code extension.

  • @accountingakash5274
    @accountingakash5274 5 років тому

    Thank's forever..Best of luck..

  • @osmanmusse6223
    @osmanmusse6223 5 років тому

    Cool Video Brain

  • @jameshuang7595
    @jameshuang7595 5 років тому +1

    Mr. Donald Trump, the best President of United States.

  • @RonyEfendy
    @RonyEfendy 4 роки тому

    Do you think Sails is better than Django? I see automatic API generation is a plus and socket, too. What Sails can't do which Django can except admin?

  • @moosegoose1282
    @moosegoose1282 5 років тому

    thanks for the free coruse. one question, isn't it better to put our backend on aws/firebase and just add these functions/requests onto the firebase cloud functions? it accomplishes the same thing right? just that you dont have to keep ur machine running 24/7

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +1

      Most businesses have many servers running in the cloud, you have to ask why this is.

  • @IsraelMeshileya
    @IsraelMeshileya 5 років тому +2

    Awesome

  • @darwinharianto5323
    @darwinharianto5323 5 років тому

    Great tutorial. I've been trying to make the same thing using express-generator. Can I hear your thoughts between sailsMVC and express-generator?

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому

      Never used express-generator myself, is it easier than SailsMVC?

    • @darwinharianto5323
      @darwinharianto5323 5 років тому

      ​@@LetsBuildThatApp From the structure, I think express-generator is simpler than sails and express-generator does come with Morgan, but I've never used sails. I'll take a look on it. Thanks

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому

      Yeah probably very similar, sails enforced strict rules which is good for beginners.

  • @zelixir3876
    @zelixir3876 5 років тому

    Is there any specific reasons for choosing Sails over Express? What is the most popular nodejs frameworks in production?

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +2

      Managing all the files and routing yourself with Express will make you go crazy. Sails is very opinionated and force strict rules on you, which is good for beginners. Sails does a good job implementing similar behavior to Rails and Laravel, comes with a simple ORM and user auth. I don't want to bore everyone with details when using Express.

  • @MrBlaq
    @MrBlaq 5 років тому +1

    Remember, javascript by default passes values by reference. Array.prototype.push modifies the original array. Create a copy of the original array first, and update after modifying the copy by using concat:
    const tmp = [...allPosts, newPosts];
    allPosts = tmp;

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому

      Good old JavaScript, I’ll probably make more oversights like this along the way.

    • @khawaraliShah
      @khawaraliShah 5 років тому

      what if the array contains millions of items? what would be a good solution in that case?

    • @MrBlaq
      @MrBlaq 5 років тому +1

      Khawar Ali For the life of me I don’t know why you would want to return that many records at once. But if you must, you would want to STREAM that data instead of using any of the array functions or for loops. You can google the Stream API.

    • @khawaraliShah
      @khawaraliShah 5 років тому

      @@MrBlaq, thanks for your reply, thanks to you I learn a new thing(Stream API). sorry for the misunderstanding, my question was if we have a large array and we want to add a new item in it. Instead of copying a complete array and then concatenating the new item, what else we can do to prevent copying complete array.

    • @MrBlaq
      @MrBlaq 5 років тому +1

      ​@@khawaraliShah In javascript, the states of arrays and objects are mutable. Strings and numbers are immutable. Immutability means the following:
      1) You create a string variable
      2) You decide to modify said string variable
      3) The modified value is allocated to a NEW BLOCK OF MEMORY
      4) The previous block of memory occupied by the initial string value is now release and prepped for the Javascript engine's garbage collector.
      Modifying the values and properties of objects and arrays DOES NOT move that object to a new block of memory, it stays in that same block of memory until you replace the object entirely. Therefore in javascript you SHOULD make a copy of the object/array, perform your modifications, and then replace it. This is fairly simple...
      const obj = {
      name: 'mutable',
      arr: [{prop: "foo"},{prop:"bar"}],
      }
      const tmp = JSON.parse(JSON.stringify(obj.arr)).map( ( x,i ) => {
      x.index = i;
      return x
      });
      obj.arr = tmp;
      Now, you don't have to follow the practice above, there's absolutely nothing stopping you from doing
      obj.arr = obj.arr.map( ( x,i ) => {
      x.index = i;
      return x
      });
      Just be aware that if you assign obj to another variable, that variable will also be changed in unexpected ways,
      Note: map and filter and reduce will create a new array from an array of primitives. If you use those functions on an array of objects/nested objects, the references to the objects will remain unchanged, which is why you want to always "deep copy" the array as seen above with JSON.parse(JSON.stringify(object)). Keep in mind that JSON.stringify will remove all functions from an object. There are other deep copy functions that retain setters, getters and custom functions like jQuery.extend.
      Bonus:
      add the following link to your Javascript syllabus: github.com/30-seconds/30-seconds-of-code

  • @richardkirigaya8254
    @richardkirigaya8254 5 років тому

    i get so many swiggly lines, when writing functions in the controller in vs code. when i compile and run everything seems ok and i dont get any errors. But in my vs code, there are so many swiggly lines. :(

  • @steiner1052
    @steiner1052 4 роки тому

    Hi! do you have a full Sails MVC course?

    • @LetsBuildThatApp
      @LetsBuildThatApp  4 роки тому

      Yes there is a full sails course in the description below.

  • @unchart_d
    @unchart_d 5 років тому

    Thank you brother!

  • @kelvinfok
    @kelvinfok 5 років тому

    A little less reverb would be good (:

  • @ozanh
    @ozanh 5 років тому

    Hi Brian, first of all I would like to thank you for your lessons and also i am participant of your webpage. But I would like to share a problem with your paid courses.
    I am from Turkey and I want to buy any of your paid courses because they are great. But right now in my country the currency of 1$ is equal 5.75 Turkish lira which means (if I buy 90$ paid course means 518 Turkish lira also it equals 7/1 of my monthly salary). There has been too many courses in the udemy that I already completed but udemy makes currency depends on native currencies basis on only numbers. I mean 24$ is equal 24 Turkish lira btw I don't exactly know what is their sales policy but it is almost like this. I mean they provide convenience.
    I like your courses and i already completed too many of them and I still watch your lessons because every time I learn new things and also watching your live streaming is fun. But please provide convenience on your paid courses because I want to buy them, I want to learn them.
    If you will not make this, please make something for me because i really want to buy and learn them.
    Thanks and best regards.
    Also please add a feedback section or message posting section to your web page for any of your webpage participants can reach you, in the mean time I only reached you from here.

  • @MrBlaq
    @MrBlaq 5 років тому +1

    ES6 proper: const filteredPosts = allPosts.filter( p => p.id === postID )

    • @khawaraliShah
      @khawaraliShah 5 років тому

      not === but ==
      like
      const filteredPosts = allPosts.filter( p => p.id == postID )

    • @MrBlaq
      @MrBlaq 5 років тому +1

      Khawar Ali Your modification is technically not wrong, but === (strict) is preferred since it checks for value and type. == (equality) only checks for value. == won’t work if you want to compare truthy/falsey values to primitive Bools

  • @bushidodaily
    @bushidodaily 3 роки тому

    awesome

  • @vladusa
    @vladusa 5 років тому +1

    Getting errors without semicolons..

  • @donathmm3881
    @donathmm3881 5 років тому

    Nice vid

  • @clashroyalepro9082
    @clashroyalepro9082 5 років тому +1

    Which is Best Course according to you and Why ? ...CS Vs SE

  • @salmankhalid1508
    @salmankhalid1508 5 років тому

    When we should use this custom solution (instead of ready made cross platform development solutions like react native)?

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +1

      Hmmm....companies use 10 different technologies for their stack, or whatever gets the job done. I suggest you do some more research.

    • @salmankhalid1508
      @salmankhalid1508 5 років тому

      @@LetsBuildThatApp yes you are right, I should do more research.

  • @hosseindastan6221
    @hosseindastan6221 5 років тому

    VERY WELL.

  • @thetechsack
    @thetechsack 5 років тому

    I smell SwiftUI in iOS app :)

  • @hannaung4281
    @hannaung4281 5 років тому

    i really want to know why you are not create your own Apps like that Fb, Twitter , amazon and etc.. ?

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +1

      Haha maybe someday I will. Maybe LBTA will be a giant platform someday.

  • @michalziobro1984
    @michalziobro1984 5 років тому

    Why node js not swift vapor or other swifty solutions ;)

  • @yeilmusic
    @yeilmusic 5 років тому

    Android Kotlin or java?

  • @fortyfour7410
    @fortyfour7410 5 років тому

    Love that Accent thing Brian. Keep it up

  • @Mettaworldj
    @Mettaworldj 5 років тому

    We all know you stopped the video because the cops was coming for you lol

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +1

      Then sirens be loud

    • @Mettaworldj
      @Mettaworldj 5 років тому

      Lets Build That App lol keep up the good content bro your videos are absolute golddddd will be purchasing the course as soon as I get paid 💯

  • @lmfao7224
    @lmfao7224 5 років тому

    NestJS is just as good as sails check it out!

  • @johnaran
    @johnaran 5 років тому

    You should use Golang and gRPC. It is NOT good idea to use Nodejs and http protocol

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому

      Interesting, never really looked into gRPC but looks like good advancement for the future. NodeJS is a good solution for beginners, even google uses it for their Firebase custom solutions. For anyone that is wondering, I always try to target the easiest solutions out there and let students decide on their own after they get their fundamentals down.

  • @JohanAlbrectsen
    @JohanAlbrectsen 5 років тому +1

    “Brian’s-iMac:~”
    Kind of feel like it’s not an iMac

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +1

      It’s gonna be a new MacBook when it finally comes out

  • @smackaroony
    @smackaroony 5 років тому

    Dig it

  • @AzharCodes
    @AzharCodes 5 років тому +2

    The injection of the british accent is tool-y my man. Why though?

  • @clashroyalepro9082
    @clashroyalepro9082 5 років тому +1

    Hey How to learn AI ? Which languages are used to AI ....

  • @nurettindegismen5671
    @nurettindegismen5671 5 років тому +1

    What is this british accent? Are you ok?

  • @anonimkisi7804
    @anonimkisi7804 5 років тому +1

    Please stop the British accent thing...

  • @mrsharondevasia
    @mrsharondevasia 5 років тому +1

    What the hell is happening these days ? You can’t even stick to one technology cause the other is more interesting !!
    I guess it’s better to look for managerial roles than to get drown in the ocean of new tech and constant updating..
    Cause this is not the only struggle in life !! I have family , friends , bills , mortgage , savings , kids to take care .. so freaking confused !!

    • @LetsBuildThatApp
      @LetsBuildThatApp  5 років тому +1

      Welcome to the world of being a software engineer, you get paid $150k/yr to do this so you don't have to worry about bills/mortgage/savings. It's definitely a trade-off you should seriously consider as its a path that isn't meant for everyone.

    • @mrsharondevasia
      @mrsharondevasia 5 років тому +1

      @@LetsBuildThatApp yeah i totally agree with you. Well thanks a lot for the reply. having weighed some pros and cons gotta make some tough decisions that are permanent, cause I am really tired going with this back and forth .. :) :)

  • @danialsview
    @danialsview 5 років тому +1

    British accent :D