Tamim Fahed

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

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

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

  • Days Won

    1

السُّمعة بالموقع

105 Excellent

المعلومات الشخصية

  • النبذة الشخصية مبرمج مبتدئ
  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 كيف يمكنني حل هذه المشكلة؟