דילוג לתוכן

עזרה הדדית - JavaScript

94 נושאים 768 פוסטים
  • בירור | nodejs תקינות פונקציה

    28
    0 הצבעות
    28 פוסטים
    122 צפיות
    ע
    @A0533057932 כתב בבירור | nodejs תקינות פונקציה: איך זה נראה בקוד (הוכחה שזה אפשרי ונקי) תראה כמה זה קריא וקל לתחזוקה כשמפרידים: ה-Repository (מטפל רק ב-SQL, בלי לוגיקה) פונקציה גנרית שיודעת לקבל אובייקט ולדחוף ל-DB. כתבת אותה פעם אחת, והיא עובדת לכל הטבלאות. // dbUtils.js async function insertRecord(connection, tableName, dataObject) { const columns = Object.keys(dataObject); const values = Object.values(dataObject); const placeholders = columns.map(() => '?').join(', '); // בונה SQL באופן דינמי - אין יותר שרשור מחרוזות ידני עם פסיקים! const sql = `INSERT INTO ${tableName} (${columns.join(', ')}) VALUES (${placeholders})`; return connection.execute(sql, values); } 2. ה-Service (הפונקציה הראשית שלך - מתוקנת) עכשיו הפונקציה שלך מתעסקת רק במה ולא באיך. // adService.js import { validateAdInput } from './validators'; // קובץ נפרד לבדיקות import { insertRecord } from './dbUtils'; export async function addAd(params) { // 1. ולידציה - זורק שגיאה אם משהו לא תקין // הפונקציה הזו מכילה את כל ה-checkType, checkPhone שלך const cleanData = validateAdInput(params); // 2. הכנת המידע (לוגיקה עסקית) // בניית האובייקט בצורה נקייה const adToInsert = { type: cleanData.type, profession: cleanData.profession, phone: cleanData.phone, recording_path: cleanData.path }; // לוגיקה עסקית: טיפול במחיר לפי סוג if (cleanData.type === 'מחפש') { adToInsert.max_payment = cleanData.price; adToInsert.ring_mode = cleanData.ringMode; // הולדיציה כבר וידאה שזה קיים } else { adToInsert.min_payment = cleanData.price; // למפרסם אין ring_mode, אז פשוט לא מכניסים אותו לאובייקט } // 3. עבודה מול ה-DB (תשתית) const connection = await pool.getConnection(); try { await connection.beginTransaction(); // הכנסת המודעה - שים לב כמה זה נקי! בלי פסיקים ובלי שרשורים const [result] = await insertRecord(connection, 'ads', adToInsert); const adId = result.insertId; // טיפול בערים (לוגיקה עסקית נוספת) if (cleanData.cities && cleanData.cities.length > 0) { // כאן תהיה קריאה לפונקציית עזר להכנסת ערים (Bulk Insert) await insertCities(connection, adId, cleanData.cities); } await connection.commit(); return { success: true, id: adId }; } catch (e) { await connection.rollback(); throw e; } finally { connection.release(); } } הAI מתעלם מזה שיש פרמטרים אופציונליים, הרי אם יש פרמטרים אופציונליים אני חייב לעבור לראות אם הם שם, זה כבר די מחזיר אותנו לקוד שלי... נכון, הוא הוציא פונקציה גנרית להוספה למסד נתונים, וככל הנראה עוד פונקציה שתעבור בעצמה על כל הפרמטרים ותעשה להם ולידציה (אותה הוא לא כתב) אבל חוץ ממנה הוא השאיר הכל אותו הדבר. כולל המון שאילתות למסד נתונים.
  • 4 הצבעות
    1 פוסטים
    36 צפיות
    אין תגובות
  • 7 הצבעות
    1 פוסטים
    45 צפיות
    אין תגובות
  • עזרה | תגובות ל- [מדריך | המדריך למתכנת המתחיל | javascript |

    6
    0 הצבעות
    6 פוסטים
    92 צפיות
    מ
    @ישיביש מתזכר שוב: פתחתי כבר נושאים בעניין - אין מה להספים את הפורום סתם
  • 3 הצבעות
    1 פוסטים
    41 צפיות
    אין תגובות
  • 7 הצבעות
    1 פוסטים
    88 צפיות
    אין תגובות
  • בקשה | מחפש ממשק API על ימי חג ומועד בישראל

    4
    0 הצבעות
    4 פוסטים
    73 צפיות
    א
    @יום_שמח https://tchumim.com/topic/14325
  • באג | באג שקורה לי מידי פעם בטרמינל

    2
    0 הצבעות
    2 פוסטים
    34 צפיות
    H
    @טופטופיסט כתב בבאג | באג שקורה לי מידי פעם בטרמינל: יש למישהו מושג למה זה קורה שכשאני מקליד: npm המחשב מחליף את זה אוטומטי ל: npnpm ואז כשאני מתקן את זה חזרה מחזיר לי שגיאה שלא הקלדתי נכון את הפקודה pm : The term 'pm' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:1 + pm run dev + ~~ + CategoryInfo : ObjectNotFound: (pm:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException זה באג מוכר אתה לא צריך לתקן רק להתעלם מהאותיות שנוספו בהתחלה אני חושב שזה קורה רק כשבנתיב שבו פתוח הטרנימל יש תווים בעברית אבל אני לא בטוח שזו הסיבה
  • 0 הצבעות
    5 פוסטים
    65 צפיות
    צדיק תמיםצ
    @איש-אמת אני מנסה להבין באיזה נקודה הוא מסתבך בכל מקרה הפתרון הוא לעשות שלוחה לכל מספר טלפון וניתוב לשלוחה האישית יש המון הסברים בפורום ימות איך לעשות ניתוב לשלוחה אישית
  • בירור | הפעלת סקריפט

    8
    0 הצבעות
    8 פוסטים
    185 צפיות
    צ
    @פלמנמוני כתב בבירור | הפעלת סקריפט: @ציון-הלוא-תשאלי כתב בבירור | הפעלת סקריפט: לא הבנתי איפה לכתוב את זה? תכתוב פונקציה בקוד function doGet(e) { if (e.parameter && e.parameter.doPost) { var functionName = e.parameter.doPost; if (typeof this[functionName] === 'function') { try { var result = this[functionName](); return ContentService.createTextOutput(result); } catch (error) { return ContentService.createTextOutput("Error: " + error.toString()); } } } return ContentService.createTextOutput("Function not found or parameter missing."); } תודה
  • המלצה | קומפוננטת תאריך עברי חדשה | React Hebrew DatePicker

    9
    13 הצבעות
    9 פוסטים
    419 צפיות
    25802
    @oryadaniely התכוונת לתייג את @Es-Mes
  • 2 הצבעות
    7 פוסטים
    216 צפיות
    cfopuserC
    @hartkhartk תתחיל לפתח שאיפות Spoiler [image: 1761225261909-813a7aa5-a4eb-4bff-a2f1-463523270d45-image.png]
  • באג | תעלומה בכתיבת תוסף לכרום

    5
    1
    0 הצבעות
    5 פוסטים
    200 צפיות
    צדיק תמיםצ
    @פרה-אדומה כתב בבאג | תעלומה בכתיבת תוסף לכרום: גוגל סוגרים את חנות התוספים לכרום... מה?!
  • בעיה | 😪 apps script, מה אני מפספס⁉️

    35
    1 הצבעות
    35 פוסטים
    630 צפיות
    מ
    @ע-ה-דכו-ע כתב בבעיה | apps script, מה אני מפספס️: @מתעניין-בהכל כתב בבעיה | apps script, מה אני מפספס️: @ע-ה-דכו-ע כמובן, את זה עשיתי... Spoiler חשבתי שכתבת שעדיין לא פרסת את הסקריפט, עכשיו אני מבין שרק את הHTML הבעיה בדף שהוא לא שולח שום טוקן, למרות שבסקריפט מוגדר בדיקה של טוקן יייחודי. גם הסקריפטים שלא היה בהם בקשה של טוקן לא עבדו.
  • בקשה | למי יש חשבון מפתחים בתוספים של גוגל

    3
    0 הצבעות
    3 פוסטים
    87 צפיות
    פ
    שלח לי הודעה למייל
  • שיתוף | תוסף פשוט ליצירת תמונות אוטומטית בנייט קפה

    5
    2
    3 הצבעות
    5 פוסטים
    183 צפיות
    ר
    @MindBlaze עודכן בפוסט
  • שיתוף | תוסף פשוט לכרום לליוק בנייט קפה

    9
    1
    4 הצבעות
    9 פוסטים
    195 צפיות
    ר
    @MindBlaze יצרתי כזה דבר כבר
  • נושא זה נמחק!

    לא נפתר
    5
    0 הצבעות
    5 פוסטים
    63 צפיות
  • בקשה | מחפש מישהו שמבין בפיירבייס

    1
    0 הצבעות
    1 פוסטים
    88 צפיות
    אין תגובות
  • בעיה | צריך עזרה פליז של מישהוא שמבין קצת בקוד js בבקשה

    9
    0 הצבעות
    9 פוסטים
    424 צפיות
    A
    @yehokarpel מה שאני ממליץ לך זה להעלות את כל הקוד המלא (לא רק הקוד הספציפי שאתה מסתבך איתו, אלא את הקוד המלא של כל הפרויקט) לגוגל סטודיו, הוא יכיר את כל הפרויקט שלך ויידע להדריך אותך איך לאתר ולפתור את הבעיה.