اذهب إلى المحتوى

Tamim Fahed

الأعضاء
  • المساهمات

    124
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    1

كل منشورات العضو Tamim Fahed

  1. لقد قمت ببناء مشروع بسيط في إطار العمل express ضمن node.js ولكن عندما أقوم بتشغيل المشروع يظهر الخطأ التالي ولا يتم تشغيل الخادم: module.js:340 throw err; ^ Error: Cannot find module 'express' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (C:\myproject\app.js:6:9) at Object.<anonymous> (C:\myproject\app.js:25:4) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) مع العلم أنني قمت بتحميل الحزمة express من خلال الأمر التالي: npm install -g express ماهي المشكلة هنا؟ ولماذا لا يتم التعرّف عليها في مشروعي؟
  2. لقد قمت بإنشاء مشروع جديد من خلال express generator ولاحظت وجود مسار جديد فيه الملف: ./bin/www وفيه المعلومات الأساسية لتشغيل الخادم والمنفذ أما بقية الكود الخاص بالمسارات فهو موجود ضمن الملف الرئيسي app.js ولكن اعتدت في النسخ السابقة من express بتعريف المعلومات الأساسية اللازمة لتشغيل الخادم والمنفذ ضمن الملف الرئيسي بجانب المسارات، فلماذا تم فصل هذه المعلومات إلى هذا الملف هنا؟ وأيضاً اعتدت على تشغيل مشروعي من خلال الأمر التالي: node app.js والآن عندما اطلعت على package.json وجدت التالي: "scripts": { "start": "node ./bin/www" } فهل يجب علي تشغيل المشروع من خلال الأمر node ./bin/www ؟ أم npm start ؟
  3. لدي مشروع مبني في إطار العمل express ضمن node.js وقد لاحظت أن جميع الطلبات تحوي الترويسة التالية: X-Powered-By:Express كيف يمكنني إزالة هذه الترويسة من جميع الطلبات الموجودة بآن واحد؟
  4. لتجنب مشاكل AJAX التابعة لنفس اسم النطاق، أود جعل طرف الخادم من node.js بتحويل جميع الطلبات من مسار محدد (مثال: /api/xxx) إلى خادم آخر (مثال: anotherwebsite.com:5000/xxx) ,ويعيد نفس النتائج التي قد يعيدها الخادم الأول الأساسي دون أن يحدث أي فارق من طرف المستخدم ودون أن يشعر بالفرق. أما بقية المسارات (مثل: api/*) يتم تخديمها من الخادم الأول ولا يتم تحويلها إلى الخادم الثاني. أي فقط مجموعة طلبات محددة سيتم تحويلها وليس جميع الطلبات. فكيف يمكنني إضافة هذه الطبقة كـ proxy والتي ستقوم بدورها بتحويل هذه الطلبات إلى الخادم الآخر ضمن express.js ؟ هل يوجد كود مباشر أستطيع تضمينه أم أحتاج لتثبيت حزم إضافية لتحقيق ذلك؟
  5. لقد قمت بإنشاء مشروع express.js جديد باستخدام الأوامر التالية: express -e myBlog npm install ejs --save npm install ولكن عندما أحاول تشغيل المشروع بهذا الأمر: node app.js يظهر لي هذا الخطأ: events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE at errnoException (net.js:884:11) at Server._listen2 (net.js:1022:14) at listen (net.js:1044:10) at Server.listen (net.js:1110:5) at Object.<anonymous> (myBlog/app.js:33:24) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) كيف يمكنني حل هذه المشكلة؟
  6. لقد قمت بكتابة كود بسيط لتشغيل خادم node.js، ولكن عندما أقوم بتنفيذ الأمر التالي لتشغيل الخادم: npm start يظهر لي الخطأ التالي: npm ERR! Windows_NT 6.3.9600 npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start" npm ERR! missing script: start npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! <https://github.com/npm/npm/issues>npm ERR! Please include the following file with any support request: كيف يمكنني حل هذه المشكلة؟
  7. أقوم باستخدام حزمة التوثيق passport.js في خادم node.js، والكود لدي بهذا الشكل: 'use strict'; var express = require('express'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var app = express(); module.exports = function setupServer(){ app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.session({ secret: 'secretKeyHere' })); app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(function(username, password, result) { if (username === 'test' && password === 'test') { console.log('Success'); result(null, {username}); } else { result(null, false); } })); app.post('/login', passport.authenticate('local', { successRedirect: '/loggedIn', failureRedirect: '/guest' })); app.listen(5000); console.log('Server listening on port 5000'); }(); ولكن يظهر لي الخطأ التالي دوماً: Error: failed to serialize user into session كيف يمكنني تجاوز هذا الخطأ؟
  8. أحاول إضافة خصائص أخرى إلى الطلب req من خلال وسطاء middlewares باستخدام typescript، مثلاً بهذا الشكل: app.use((req, res, next) => { req.newKey = setProperty(); next(); }); بحيث يتم عبر typescript من خلال هذا الوسيط إضافة بعض القيم إلى الغرض req والوصول إليها ضمن التوابع الأخرى. كيف يمكنني تنفيذ مايشبه ذلك؟
  9. يوجد معاملات أساسية مع كل طلب أو مسار في إطار العمل express.js وهما req , res : app.get('/test/:data', function(req, res){ res.send('data: ' + req.params.data); }); ماهي وظيفة هذه المعاملات؟ وهل يمكنني تغيير اسمائها إلى شيء آخر؟ وهل استخدامها معاً ضروري أو يمكن الاستغناء عنها في هذا التابع function ؟
  10. أحاول إضافة الشهادة وتعديل الاتصال إلى اتصال آمن https، وقمت باتباع الخطوات المذكورة في التوثيق الرسمي ل node.js: var https = require('https'); var fs = require('fs'); var options = { key: fs.readFileSync('test/test-key.pem'), cert: fs.readFileSync('test/test-cert.pem') }; https.createServer(options, function (req, res) { res.writeHead(200); res.end("hi"); }).listen(3000); والآن عندما أقوم بتجربة الرابط من خلال curl مع وضع https:// تظهر لي العبارة " hi " أما عندما أقوم بوضع http يظهر لي الخطأ التالي: curl: (52) Empty reply from server كيف يمكنني إضافة وسيط معيّن لتحويل الاتصال من http إلى https بشكل تلقائي؟
  11. أقوم باستخدام إطار العمل express وأرغب بإعادة توجيه المستخدم إلى قالب عدم العثور على الصفحة أو 404. فهل هنالك تابع محدد أو مسار يمكنني استخدامه في express.js لتحقيق ذلك؟
  12. لدي مشروع مبني باستخدام إطار العمل express في node.js ولدي أيضاً خوارزمية معيّنة ضمن بايثون أرغب باستخدامها على البيانات التي يتم الحصول عليها من خلال كود node.js هل هنالك طريقة لاستدعاء بعض التوابع من كود بايثون إلى node.js؟ وكيف سيتم تمرير المعطيات والنتائج بينهما؟
  13. لدي مجلّد pages فيه بعض صفحات الموقع ومنها index.html، وأحاول عرضها من خلال node.js بالكود التالي: var express = require('express'); var app = express.createServer(); app.use(express.staticProvider(__dirname + '/public')); app.get('/', function(req, res) { res.render('index.html'); }); app.listen(3000, '127.0.0.1') ولكن يظهر لي هذا الخطأ: Error: Cannot find module 'html' كيف يمكنني حل هذه المشكلة؟
  14. لدي بعض مسارات التوجيه ضمن خادم node.js بهذا الشكل: var express = require('express'); var jade = require('jade'); var http = require("http"); var app = express(); var server = http.createServer(app); app.get('/', function(req, res) { res.render('index.jade', context); }); app.post('/test', function(req, res) { res.redirect('/'); }); أرغب بالتحقق من بعض القيم عند المسار test وفي حال كانت غير صحيحة، يجب أن يتم إعادة التوجيه إلى المسار الرئيسي / مع إضافة بعض المتغيرات إلى المسار (كرسالة بشير إلى فشل التحقق). كيف يمكنني تحقيق ذلك وإضافة هذه القيم إلى التابع redirect ؟
  15. لقد قمت بتجربة مشروع بسيط باستخدام express.js في خادم node.js وقمت بكتابة الكود التالي: var express = require("express"), app = express.createServer(); app.use(express.static(__dirname + '/styles')); app.listen(5000); والمجلدات الموجودة ضمن المشروع موزّعة بهذا الشكل: home.js /styles main.css ولكن عندما أحاول الوصول إلى ملف التنسيقات من خلال المتصفح: http://localhost:5000/styles/main.css يظهر لي الخطأ التالي: Cannot GET / styles / main.css كيف يمكنني حل هذه المشكلة؟
  16. أقوم بتمرير بعض المتغيرات في الطلب من النوع GET إلى خادم الويب node.js، وأعلم أنه يمكنني الحصول على قيم هذه المتغيرات ضمن express كالتالي: var param = req.query.param; ولكن لا أستخدم إطار express في مشروعي، فكيف يمكنني الحصول على هذه القيم ضمن node.js فقط؟
  17. أحاول إيجاد طريقة لإنشاء والكتابة على ملف نصي من خلال node.js مباشرةً أي من ضمن الكود البرمجي. كيف يمكنني تنفيذ ذلك؟ وماهي الحزمة التي يجب أن أقوم باستخدامها؟
  18. قمت بإضافة بعض ملفات SCSS ضمن مشروع node.js وأرغب بإجراء تحديث تلقائي للملفات أثناء إجراء التغييرات على التنسيقات. كيف يمكنني جعل هذه الملفات تقوم بالتحديث تلقائياً باستخدام node.js و node-sass ؟
  19. لقد قمت بإضافة الترويسة التالية إلى الطلبات في خادم node.js للوصول إلى طول البيانات خلال الطلب: res.set({'Content-Type':'text/plain;charset=utf-8', 'Content-Length': Buffer.byteLength(data, 'utf-8')}); وعندما أقوم بطباعة المحتوى أحصل على حجم البيانات كما هو، لكن إذا قمت باستعراضها ضمن المتصفح في الكونسول أرى جميع الخصائص عدى الخاصية content-length: Connection:keep-alive Content-Encoding:gzip Content-Type:text/plain;charset=utf-8 Date:Sat, 17 Aug 2021 08:21:59 GMT Transfer-Encoding:chunked Vary:Accept-Encoding X-Powered-By:Express لماذا تختفي هنا content-length؟ وكيف يمكنني ضمان وجودها مع جميع الطلبات التي سيتم إرسالها؟
  20. لقد حاولت إضافة cookie من قبل الخادم إلى الطلب من خلال الكود التالي في node.js: res.setHeader('Set-Cookie','testing=testuser'); res.cookie('testcookie', 'hello', { maxAge: 900000 }); ولكن عند الدخول إلى الكونسول والبحث عن ملفات تعريف الارتباط أجدها فارغة ولا أتمكن من الوصول إلى هذه القيم من طرف المستخدم. كيف يمكنني حل هذه المشكلة؟
  21. لقد وجدت طريقتين لإضافة بعض الخصائص إلى الترويسة في node.js وهي res.setHeader و res.header. ولكن ما الفرق بينهما؟ ومتى يجب علي استخدام إحداها لتفعيل CORS على الخادم؟
  22. أحاول إضافة التوثيق ل API مبنية بإطار العمل express.js في node.js، ويتم إرسال الطلبات من قبل الزبون باستخدام axios. استطعت إيجاد الحقل Set-Cookie ضمن الطلب من خلال استعراضه: Access-Control-Allow-Origin: * Connection: keep-alive Content-Length: 355 Content-Type: application/json; charset=utf-8 Date: Mon, 27 Jul 2021 05:59:01 GMT ETag: W/"163-PAMc87SVHWkdimTJca7oRw" Set-Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...; Max-Age=3.6; Path=/; Expires=Fri, Mon, 27 Jul 2021 05:59:01 GMT ; HttpOnly X-Powered-By: Express ولكن لا يتم إضافة ال cookies فعلياً. هل يوجد طريقة لأستطيع إضافتها وإكمال التوثيق من خلال axios؟
  23. أستخدم إطار العمل express النسخة 2 في node.js ووجدت طريقة لتمرير المتغيرات مع ال view من خلال استخدام المتغيّر locals: res.render("myTemplate", { locals: { user: "test1" } }); ولكن هل يوجد طريقة باستخدام globals بدلاً من locals ؟ أي استخدام متغيرات موجودة بأماكن أخرى من الكود بشكل عام؟ وفي حال قمت بالتحديث للنسخة الأحدث من express كيف يمكنني تمرير القيم بشكل عام بين أجزاء الكود البرمجي؟
  24. أقوم باستخدام إطار العمل express.js وحاولت وضع كود بسيط كالتالي: var express = require('express'); var app = express(); app.all('*', (req, res) => { res.sendFile(__dirname+'/index.html') }) var server = app.listen(3000, () => { const host = server.address().address const port = server.address().port }) ولكن أحصل على الخطأ التالي ضمن الكونسول: SyntaxError: expected expression, got '<' ولا يظهر أي شيء ضمن الصفحة. كيف يمكنني حل هذه المشكلة؟
  25. أستخدم request لإرسال طلب https إلى خادم الويب، ولكن مهما أقوم بتمرير متغيرات أحصل على الخطأ التالي: CERT_HAS_EXPIRED وهذا هو الكود الخاص بإرسال الطلب: request({ url: 'https://www.example.com/api/users', }, function(error, response, body) { if(!error && response.statusCode == 200) { res.json(JSON.parse(body)); } else { res.json(response.statusCode, {'error': 'error'}) } }); حاولت إضافة المتغيّر strictSSL: false إلى الطلب ولكن بقي نفس الخطأ. كيف يمكنني حل هذه المشكلة؟
×
×
  • أضف...