ניסיתי לגרום ל-socket.io לעבוד עם ה-backend שלי ב-Nodejs ו-Typescript ועם ה-frontend ב-React + JSX, זו החוויה הראשונה שלי עם socket.io אבל זה היה סיוט. זהו קובץ ה-server.ts שלי
import Express, {Application} from 'express'; import dotenv from 'dotenv'; const app: Application = Express(); import http from 'http'; //getting the Socket Type from socket io import {Socket} from 'socket.io'; //importing the IO object form seperate fi קרא עוד →אני כותב יישום REPL באמצעות TypeScript עם מודול ה-readline המובנה של Node.js. כדי לבנות shell מותאם אישית, יש צורך לשנות חלק קטן במימוש של ה-completer ב-readline. מצאתי את קוד המקור של readline וברצוני לבצע תיקון קטן מ-output += '\r\n\r\n'; ל-output += '\r\n'; בשורה 665.
אני מניח שהגישה היא שיהיה גרסה מתוקנת של readline.js ולכתוב הצהרת סוג עבורו. אבל מאחר ש-readline הוא מודול מובנה, יותר מדי משתנים (למשל primordials בשורה 65
קרא עוד →אני עכשיו מקבל את השגיאה הזו:
זה קרה לאחר שהוספתי "type": "module" ל-package.json
package.json
{ "name": "Test", "version": "1.0.0", "description": "", "main": "index.js", "scripts" קרא עוד →יש לי שני פרויקטים. הפרויקט הראשון הוא שרת ווב שמריץ סקריפטים. הפרויקט השני מציג אוסף של סקריפטים שהפרויקט הראשון מריץ.
אני משגר את שרת האינטרנט דרך כניסה ב-.vscode/launch.json. אני מתייחס לתוכנית כ-$ {workspaceFolder:first}/src/webserver.ts ומתייחס ל-JS המקומפלת כ-outFiles: [ "{workspaceFolder:first}/**/*.js" ].
שרת האינטרנט מקבל את הבקשה ומשגר את קובץ ה-JS בתיקיית הפרויקט השנייה אך אינו משתמש בקוד המקור שמצויין במפת המקור.
קרא עוד →
אני מנסה להריץ את sequelize על NodeJS. אני כותב את הקוד ב-Typesscript הגרסאות של התוכנה שאני משתמש בהן הן כדלקמן:
nodejs - 14.16.0 sequelize - 6.5.1 typescript - 4.2.3
Typescript נבנה בהצלחה אך כאשר מריצים את הפקודה node על קובץ index.
קרא עוד →
אני רוצה להכניס את אפליקציית Nodejs שלי לדוקר. בעת פריסה שלה באמצעות npm run build ו-start אני יכול לשלוח לה בקשות. אבל כאשר אני יוצר תמונת דוקר אני נתקל בבעיות: קודם כל יש לי EXPOSE 8080 בקובץ Dockerfile שלי. לאחר מכן אני מריץ docker run -p=3000:8080 --env-file .env my-docker-file
קרא עוד →אני יוצר שני APIs עם NodeJS, Express, ו-TypeScript. API אחד יקבל בקשה עם סוג תוכן של multipart/form-data, וישתמש בגוף הבקשה כדי לבצע בקשה נוספת ל-API שני.
אני משתמש ב-Postman, אז שרשרת הבקשות נראית משהו כזה
Postman -> First API -> Second APIאני משתמש ב-node-fetch כדי לבצע בקשה מה-API הראשון ל-API השני. גוף הבקשה הוא FormData, שמכיל כמה קבצים וזוגות מפתח-ערך.
const form = new FormData(); קרא עוד →אני מנסה להגדיר משתנה גלובלי mockedCrossFetch כך שמקרי המבחן שלי יוכלו להשתמש בו בקלות כדי לדמות תגובות:
jest.mock("cross-fetch"); import fetch from "cross-fetch" declare global { let mockedCrossFetch: jest.MockedFunction<typeof fetch>; } globalThis.mockedCrossFetch = fetch as jest.MockedFunction<typeof fetch>;המְחוּשֵׁב מתלונן עם:
Property 'mockedCrossFetch' does not exist on type 'typeof globalTh קרא עוד →כפי שאני מבין, צריך לאתחל את XRay לפני כל לקוחות ה-AWS, וגם לפני לקוחות HTTP אם אני רוצה לעקוב גם אחרי בקשות HTTP יוצאות. זהו הקוד לאתחול XRay.
import aws from 'aws-sdk' import AWSXRay from 'aws-xray-sdk' import http from 'http' import https from 'https' AWSXRay.captureHTTPsGlobal(http) AWSXRay.captureHTTPsGlobal(https) AWSXRay.capturePromise() AWSXRay.captureAWS(aws)זה נראה קל עבור למדה אחת. עם זאת, יש לי פרויקט NodeJS ללא שרת שיש לו מספר למדות, ועוד רבות יתוו
קרא עוד →
נניח שיש לי לולאה פשוטה כזו:
for (const i=0;i<3;i++) { to(`This counter is ${i}`) }אני רוצה שיהיה לי בקובץ שלי בסוף:
ניסיתי לעשות את
קרא עוד →