• 0

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

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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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
اضافة معلومة

انشر على الشّبكات الاجتماعية


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

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن