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

إظهار صفحة HTML ضمن إطار العمل express.js في node.js

Tamim Fahed

السؤال

لدي مجلّد 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'

كيف يمكنني حل هذه المشكلة؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يوجد عدة طرق لإرسال الصفحات من خلال node.js ومنها استخدام محرك القوالب jade من خلال إنشاء الملف index.jade ضمن المجلّد الذي يحوي صفحات الموقع لديك pages وإضافة الكود التالي:

include plain.html

ثم وفي نفس المجلّد نجعل الصفحة plain.html تحوي كود HTML الخاص بهذه الصفحة بهذا الشكل:

<!DOCTYPE html>
...

وأخيراً في كود node.js من طرف الخادم نستطيع تمرير هذه الصفحة بالشكل التالي:

res.render(index)

ومع تحديث نسخة express.js بدءً من النسخة الثالثة، أصبح بإمكانك استخدام المحرّك ejs من خلال تحميل الحزمة التالية:

npm install ejs --save

وتمرير الصفحات بالشكل التالي:

app.set('views', __dirname + '/pages');

app.engine('html', require('ejs').renderFile);

أما في نسخة express 3.4 ومافوق يمكنك استخدام المحرّك ejs يالشكل التالي:

app.set('view engine', 'ejs');

app.get('/home', function (req, res)
{
    res.render('home.html');
});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

يمكنك قراءة ملفات ال html وإرسالها ببساطة كالتالي

app.get('/', (req, res) => {
    fs.readFile(__dirname + '/public/index.html', 'utf8', (err, text) => {
        res.send(text);
    });
});

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

تستطيع قراءة ملف في Node.js بإستخدام مكتبة fs

var  fs = require('fs');

app.get('/', (req, res) => {
   
  fs.readFile('./index.html', function (err, html) {
      if (err) {
          throw err; 
      }       
			res.send(html);
  });
});

لكن سيظل من الإفضل لك استعمال محركات القوالب (templating engine)

وهناك الكثير منها : 

  • PUG
  • EJS
  • Handlebars
تم التعديل في بواسطة MoJaffer
اضافة معلومة
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...