טעינת סיסמאות ב-nodejs נכשלת
-
אז כולנו מקווים שתצליח להתגבר על הבעיה,
אבל אנחנו לא יכולים לתת את עזרתנו עם כ"כ אפס פרטים/קוד. -
בהתחלה הוספתי ל
()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, זה בעצם העיקר.@אלישי + @משתמש-תמים אני לא יודע למה החלטתם שהבעיה זה רווח, ממתי רווח מפריע בנתיב מוקף מרכאות?
אצלי בכל אופן עובד: -
אתה בטוח שבקובץ C:/Tachnot/mw-bot-master copy/.env יש שורה עם PASSWORD=XXX?
כמו"כ אם אתה יכול להביא את הקוד שטוען את הPASSWORD מתוך הenv, זה בעצם העיקר.@אלישי + @משתמש-תמים אני לא יודע למה החלטתם שהבעיה זה רווח, ממתי רווח מפריע בנתיב מוקף מרכאות?
אצלי בכל אופן עובד: -
אוקי, אז רק תוסיף שמה (בconstructor של הclient) עוד שורה:
console.log(process.env.PASSWORD);
זה מדפיס את הערך הנכון?