My primary development language is C#, so I was very interested in learning how to mock for testing in TypeScript. I've got a few years of JavaScript under my belt, but never got into DI there. I came to this video from your "Mocking a Database in Jest" video. If the explanation is clear there as it was here, you have my deepest gratitude and appreciation, as well as a new subscriber.
Thanks. Спасибо! Почему-то я не догадывался строить приложение таким образом. Возможно под влиянием laravel и других фреймворков я упускал понимание работы механизмов более низкого уровня и пытался реализовать создание корневого объекта приложения во входном файле. Очень рад, что посмотрел данное видео)
You got a sub bro. You're awesome. Your channel will get 1M hit too soon. I hope. You've very quality content. Please, make a playlist on React testing too
Thanks for the great tutorial, Sam! One feedback though; the music is a bit louder than your voice, so I have to decrease the volume whenever you fast forward
Super nice, thanks. How would you do if the database isn't directly used in the app, but in a router or in a controller called from that router ? I'm having a hard time trying to apply these principles to an app wired this way.
Great way to explain the pattern. Thank you! Just one question, is having all your queries to the db in a single file a good practice or a conventional practice? I just have not seen that before.
Thanks for making this video! I've always liked test-driven development. But I do have a question - what's the syntax for injecting the database dependency if your routes are in another file? for example app.ts has: app.user('/api/user', userRoute); //where your post route is in userRoute.js
Technically, ,if a username already exists you would use the 409 Conflict status. I know it's not germane to the tutorial, it's just a random nugget of information for anyone who builds HTTP servers. I always suggest using HTTP status semantics so consuming applications can derive the error from the calling context without having to parse the error message text, or introducing custom domain-specific error codes. Then for a specific request, the front-end say, will know that when a conflict is thrown, a user with the username already exists.
But what if you have a lot of routes and they're stored in different files, do I have to drill down the database object to every single controller and middleware ?
NIce videos. If I may, each time you put a music I find the volume is a little too high and kinda distuptive for focusing. Anyway, I just silenced these parts. Keep up the good work.
Greetings, thank you for the nice video (all of them), here is my question: If createApp imports a function, doesn't it executes it straight by importing it? Don't you instantiate two apps now? Isn't it better to assign your app-function into an Object and export the object, instead, so you can initiate the app from your server code?... or I'm just wrong :) ps. I understand the video is just basic, yet the question is for my own sake :)
Thank you Sam. Please keep making videos. You are 1000% easier to understand than my teachers. You are a life send. Thank you 100 times.
This was very clear. I was struggling to understand the concept but with this I get it completely now! Thanks
My primary development language is C#, so I was very interested in learning how to mock for testing in TypeScript. I've got a few years of JavaScript under my belt, but never got into DI there. I came to this video from your "Mocking a Database in Jest" video. If the explanation is clear there as it was here, you have my deepest gratitude and appreciation, as well as a new subscriber.
Code Fastforwards :
3:25 - database.js
6:55 - wrapping database calls in app.js inside a function
9:00 - passing a custom database object to the app
Thanks. Спасибо! Почему-то я не догадывался строить приложение таким образом. Возможно под влиянием laravel и других фреймворков я упускал понимание работы механизмов более низкого уровня и пытался реализовать создание корневого объекта приложения во входном файле.
Очень рад, что посмотрел данное видео)
Thank you and kudos! Very easy to understand, and you give a lot of great examples that can fit right into real life projects.
You got a sub bro. You're awesome. Your channel will get 1M hit too soon. I hope. You've very quality content. Please, make a playlist on React testing too
great explanation just a small feedback that your music is louder than your voice and thats kind of annoying
Thanks for the great tutorial, Sam!
One feedback though; the music is a bit louder than your voice, so I have to decrease the volume whenever you fast forward
Very nice explanation.
Thanks Sam.
Greetings from Portugal 🤗
This is great looking forward advanced topics about testing! Thank you
Great example, finally i get it
Great explanation! Keep it going please :-)
Another amazing....THANK YOOOUU SAM!!
Glad you enjoyed it!
Super nice, thanks. How would you do if the database isn't directly used in the app, but in a router or in a controller called from that router ? I'm having a hard time trying to apply these principles to an app wired this way.
it was a very clear explanation, very cool!
this was awesome, thank you!
Hi,
In case we separate the route and controller (move the route to route file, controller to controller file), how we inject database
Great way to explain the pattern. Thank you! Just one question, is having all your queries to the db in a single file a good practice or a conventional practice? I just have not seen that before.
Thanks for making this video! I've always liked test-driven development. But I do have a question - what's the syntax for injecting the database dependency if your routes are in another file?
for example app.ts has:
app.user('/api/user', userRoute); //where your post route is in userRoute.js
Awsome explanation
Love your work dude but the songs u play during your fastforward makes me want to throw away my headphones everytime ^^
🤣 I’m open to music suggestions
Great explanation. Succint! Just need to reduce the volume of the music though. It'll be better if it played somewhat subtly in the background. 👍
Technically, ,if a username already exists you would use the 409 Conflict status. I know it's not germane to the tutorial, it's just a random nugget of information for anyone who builds HTTP servers. I always suggest using HTTP status semantics so consuming applications can derive the error from the calling context without having to parse the error message text, or introducing custom domain-specific error codes. Then for a specific request, the front-end say, will know that when a conflict is thrown, a user with the username already exists.
Great tutorial!!! Thanks!!
05:32 Use Dependency Injection
good stuff
But what if you have a lot of routes and they're stored in different files, do I have to drill down the database object to every single controller and middleware ?
Great video
please how do I achieve dependency injection when I have different route files and import all the routes into the index app
I hope this makes sense, i'm just going to write the code in the youtube comment
// someRoute.js
const express = require('express')
export function(database) {
const route = express.route("/something")
route.get("/", (req, res) => {})
return route
}
// app.js
const makeSomeRoute = require('./someRoute.js')
....
makeSomeRoute(database)
@@SamMeechWard wouldn't this be express.Router?
Did you hire a professional to select your intro songs? They're always so good.
I have an unpaid intern
@@SamMeechWard you should start paying her
it is wonderful
hey thanks a lot for the amazing video. could you make a video about applying dependency injection to graphql server?
I love the suggestions. It might be a while until I do any videos with GraphQL though.
what if youre using controllers for each route, then you wouldnt be creaitng the app in each controller right?
I have a question, what if my requestHandlers are different file how can ı send database
NIce videos. If I may, each time you put a music I find the volume is a little too high and kinda distuptive for focusing. Anyway, I just silenced these parts. Keep up the good work.
Greetings, thank you for the nice video (all of them), here is my question: If createApp imports a function, doesn't it executes it straight by importing it? Don't you instantiate two apps now? Isn't it better to assign your app-function into an Object and export the object, instead, so you can initiate the app from your server code?... or I'm just wrong :)
ps. I understand the video is just basic, yet the question is for my own sake :)
You talk, and I hear henry cavill's voice.
great tutorial btw.
Thanks!
You need to use Typescript and tsyringe
Isn't this the Strategy Pattern?
This (TDD) is a niche market ... no one is paying attention too....keep at it
music too loud
Good vídeo, but please don’t put that song so loud, it’s really annoying
Great stuff but music not my cup of tea at all, please turn it down a bit, too distracting