מחלקה פשוטה וקלה ל MySQL ב node
-
@חוקר לא עיינתי בכל הקוד, אבל סתם עצה קטנה, בסוף כל מתודה תוסיף
return this
, זה יאפשר לשרשר מתודות בלי להשתמש במשתנה מצביע, גם אפשר לעשות את זה קצת יותר גנרי עם אפשרות הרחבה. משהו כזהnew Database(config).select(obj).limit(20).run().then(rows => rows)
-
@יוסף-בן-שמעון אמר במחלקה פשוטה וקלה ל MySQL ב node:
@חוקר לא עיינתי בכל הקוד, אבל סתם עצה קטנה, בסוף כל מתודה תוסיף
return this
, זה יאפשר לשרשר מתודות בלי להשתמש במשתנה מצביע, גם אפשר לעשות את זה קצת יותר גנרי עם אפשרות הרחבה. משהו כזהnew Database(config).select(obj).limit(20).run().then(rows => rows)
ב SELECT למשל שמחזיר שורות לא כ"כ נראה לי מתאים להוסיף return this.
ב INSERT זה מחזיר את הID החדש (אם קיים).
רק ב UPDATE זה יכול להיות רלוונטי, אבל לא כ"כ נראה לי שימושי.
אבל בכל אופן תודה על הערה, נתת לי הבנה שעדיין לא הייתה לי.לבנות משהו מורכב יותר, אפשרי בהחלט, אבל כבר לא כ"כ קריטי עבורי כמו שחיבורים עצמם.
-
@יוסף-בן-שמעון אמר במחלקה פשוטה וקלה ל MySQL ב node:
@חוקר לא עיינתי בכל הקוד, אבל סתם עצה קטנה, בסוף כל מתודה תוסיף
return this
, זה יאפשר לשרשר מתודות בלי להשתמש במשתנה מצביע, גם אפשר לעשות את זה קצת יותר גנרי עם אפשרות הרחבה. משהו כזהnew Database(config).select(obj).limit(20).run().then(rows => rows)
??
אתה בטוח שצריך ``return this``` בשביל לשרשר?? -
@אהרן אם אתה בטוח הפוך או שיש לך קושיה על כך תכתוב. לשאול מישהו שאומר משהו אם הוא בטוח זה לא צורת שיחה נורמלית.
@חוקר ההצעה של @יוסף-בן-שמעון מורכבת מכפי שחשבת. הוא רוצה שעד שלא תריץ את run שום דבר לא ירות רק "יתכונן לריצה". זה מאוד יפה וככה עובדים הרבה מחלקות. -
@dovid אמר במחלקה פשוטה וקלה ל MySQL ב node:
@אהרן אם אתה בטוח הפוך או שיש לך קושיה על כך תכתוב. לשאול מישהו שאומר משהו אם הוא בטוח זה לא צורת שיחה נורמלית.
@חוקר ההצעה של @יוסף-בן-שמעון מורכבת מכפי שחשבת. הוא רוצה שעד שלא תריץ את run שום דבר לא ירות רק "יתכונן לריצה". זה מאוד יפה וככה עובדים הרבה מחלקות.הבנתי מיד, אני משתמש בזה ב PHP YII2 .
אבל על זה עניתי שאין לי צורך להשקיע כ"כ.
רק הבנתי מדבריו ש return this יכול לעזור גם ללא קשר לחלק השני של מה שכתב, ועל זה התייחסתי.
עיין שם ודו"ק. -
@חוקר מצטער, התוכן הבא לא רלוונטי למה שהוא אמר:
ב SELECT למשל שמחזיר שורות לא כ"כ נראה לי מתאים להוסיף return this.
ב INSERT זה מחזיר את הID החדש (אם קיים).
רק ב UPDATE זה יכול להיות רלוונטי, אבל לא כ"כ נראה לי שימושי.
הוא דיבר בעיקר על הSELECT וזה מאוד רלוונטי לשם, כי אתה יכול לקמבן פילטרים, אבל זה מאוד מורכב למימוש לדעתי.
-
@חוקר אמר במחלקה פשוטה וקלה ל MySQL ב node:
let query = 'UPDATE `' + table + '` SET';
פה יש פונטנציאל של הזרקה ב table.
תשתמש ב connection.escapeIdhttps://www.npmjs.com/package/mysql#escaping-query-identifiers
-
@אהרן אמר במחלקה פשוטה וקלה ל MySQL ב node:
??
אתה בטוח שצריך ``return this``` בשביל לשרשר??תנסה את שתי המחלקות האלה ותראה איזה מהם יכשר
class A{ constructor(num){ this.i = num; } plus(){ this.i ++ } minus(){ this.i -- } } class B{ constructor(num){ this.i = num; } plus(){ this.i ++ return this } minus(){ this.i -- return this } } new B(2).plus().minus() new A(2).plus().minus()
-
@יוסף-בן-שמעון
משום משה זכרתי (בטעות) שהשרשור תמיד מתייחס לאוביקט הראשון. זו טעות מוחלטת?