טעינת סיסמאות ב-nodejs נכשלת
-
אני מנסה להריץ סקריפט שדורש ביצוע login לאתר והסיסמאות לא נטענות.
-
בהתחלה הוספתי ל
()dotenv.config
מצב דיבוג, ולפי הבנתי השגיאה הייתה שהריצה בוצעה בתיקיית האב, הוספתי נתיב לקובץ מתיקיית האב וקבלתיFailed to load ./שם התיקיה/.env ENOENT: no such file or directory, open
. בהרצה האחרונה קבלתי רק את השגיאה שהוגדרה בקוד.
מקווה שהתקדמתי במשהו.. -
אתה מגלה טפח ומכסה עשרה, או מפחד קהל או מחרדת פרטיות.
תביא קוד שנכשל כפי שהוא נראה (עם כל הסודות הכי אישיים שיש שמה),
תספר על הקובץ בו נמצא הקוד, האם הוא הקובץ הראשי שרץ או שהוא תלות,
ותסביר איפה קובץ ההגדרות נמצא ביחס לקובץ שרץ. -
זה הקוד שטוען את הסיסמה
class Client { wikiUrl; #cookie = ""; userName = process.env.USER || ""; #password = process.env.PASSWORD || ""; isLogedIn = false; /** * * @param {String} wikiUrl */ constructor(wikiUrl) { if (!wikiUrl) { throw new Error("you didn't pass the url of your wiki"); } this.wikiUrl = wikiUrl; } async #postWiki(body) { return fetch(this.wikiUrl, { headers: { "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "user-agent": "node-fetch mw-api-node-client", cookie: this.#cookie, }, method: "POST", credentials: "include", body: new URLSearchParams({ format: "json", utf8: 1, ...body }), }); } async getWikiWithCookie(queryString) { if (!this.isLogedIn) { await this.login(); } return fetch(`${this.wikiUrl}?${queryString}`, { headers: { cookie: this.#cookie }, }); } /** * method to login the user and get a cookie for forther operations * @param {String} [userName] * @param {String} [password] * @returns {Promise<Boolean>} */ async login(userName, password) { if (userName) { this.userName = userName; } if (password) { this.#password = password; } if (!this.userName && !this.#password) { throw new Error("you dinwt pass your user name or your password"); } אני טוען אותו דרך קובץ נוסף (ז"א שמתווך בין הקובץ שאני מריץ לקובץ הזה), כרגע אני מקבל את אובייקט השגיאה שהוגדר.
כל הקבצים באותה תיקיה.
זה בראש הקובץ הראשון (שטוען את הסיסמה):import dotenv from "dotenv"; dotenv.config({path: 'C:/Tachnot/mw-bot-master copy/.env', debug: true}); -
ראשית כל, תמיד כדאי לתת לקבצים ולתיקיות שמות ללא רווחים, ולכן תתחיל עם זה שאת הנתיב הזה: path: 'C:/Tachnot/mw-bot-master copy/.env' תעשה ללא רווחים כלל, תוסיף מקף במקום רווח ככה:
path: 'C:/Tachnot/mw-bot-master-copy/.env'
-
להסביר את דברי @אלישי, צריך לשנות את שם התיקיה
לא מספיק לשנות את הנתיב בקובץאם זה לא מסתדר היה כדאי גם שתעלה את השגיאה כמו שהיא עם שם הקובץ בלי שינוי
-
-
אתה בטוח שבקובץ C:/Tachnot/mw-bot-master copy/.env יש שורה עם PASSWORD=XXX?
כמו"כ אם אתה יכול להביא את הקוד שטוען את הPASSWORD מתוך הenv, זה בעצם העיקר.@אלישי + @משתמש-תמים אני לא יודע למה החלטתם שהבעיה זה רווח, ממתי רווח מפריע בנתיב מוקף מרכאות?
אצלי בכל אופן עובד: -
צריך להוסיף . לפני?
-
-
בסוף מחקתי את הקובץ, יצרתי מחדש, והבאג נעלם.
2/18