it-swarm.dev

كيف يمكنني استخدام HTML كمحرك العرض في Express؟

جربت هذا التغيير البسيط من البذرة وأنشأت ملفات .html المقابلة (مثل index.html).

//app.set('view engine', 'jade');
app.set('view engine', 'html');

وظل هذا الملف كما هو:

exports.index = function(req, res){
  res.render('index');
};

ولكن أثناء الركض أحصل عليه

500 خطأ: لا يمكن العثور على الوحدة النمطية "html"

هل الخيار الوحيد لاستخدام 'ejs'؟ كانت نيتي استخدام HTML عادي بالتزامن مع AngularJS.

116
Julio

ستعمل الإجابات الموجودة على الرابط الآخر ، ولكن لعرض HTML ، ليست هناك حاجة لاستخدام محرك عرض على الإطلاق ، إلا إذا كنت تريد إعداد توجيه غير تقليدي. بدلاً من ذلك ، فقط استخدم الوسيطة الثابتة:

app.use(express.static(__dirname + '/public'));
81
Dan Kohn

لجعل محرك التجسيد يقبل html بدلاً من jade ، يمكنك اتباع الخطوات التالية ؛

  1. تثبيت دمج و swig إلى الدليل الخاص بك.

     npm install consolidate
     npm install swig
    
  2. أضف الأسطر التالية إلى ملف app.js الخاص بك

    var cons = require('consolidate');
    
    // view engine setup
    app.engine('html', cons.swig)
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'html');
    
  3. أضف قوالب العرض الخاصة بك بصيغة .html داخل مجلد "المشاهدات". أعد تشغيل خادم العقدة وابدأ التطبيق في المتصفح.

على الرغم من أن هذا سيؤدي إلى ظهور HTML دون أي مشكلة ، إلا أنني أوصيك باستخدام JADE من خلال تعلمه. Jade عبارة عن محرك قالب مدهش وسيساعدك تعلم هذا في تحقيق تصميم وقابلية أفضل.

29
AnandShanbhag

في apps.js الخاص بك فقط إضافة

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

يمكنك الآن استخدام مشغل عرض ejs مع الاحتفاظ بملفات العرض كملف .html

المصدر: http://www.makebetterthings.com/node-js/how-to-use-html-with-express-node-js/

تحتاج إلى تثبيت هذه الحزمتين:

`npm install ejs --save`
`npm install path --save`

ثم قم باستيراد الحزم المطلوبة:

`var path = require('path');`


وبهذه الطريقة يمكنك حفظ وجهات نظرك كـ .html بدلاً من .ejs .
مفيد جدًا أثناء العمل مع IDEs التي تدعم html لكن لا تتعرف على ejs.

17
Sudhanshu Gupta

جرب هذا لتكوين الخادم الخاص بك

app.configure(function() {
    app.use(express.static(__dirname + '/public'));         // set the static files location
    app.use(express.logger('dev'));                         // log every request to the console
    app.use(express.bodyParser());                          // pull information from html in POST
    app.use(express.methodOverride());                      // simulate DELETE and PUT
    app.use(express.favicon(__dirname + '/public/img/favicon.ico'));
});

ستظهر وظائف رد الاتصال الخاصة بك على الطرق:

function(req, res) {
    res.sendfile('./public/index.html');
};
14
Connor Leech

لا يوجد محرك عرض ضروري ، إذا كنت تريد استخدام الزاوي مع ملف HTML بسيط عادي. إليك كيفية القيام بذلك: في ملف route.js الخاص بك:

router.get('/', (req, res) => {
   res.sendFile('index.html', {
     root: 'yourPathToIndexDirectory'
   });
});
13
Ashish Rawat

الجواب بسيط جدا. يجب عليك استخدام app.engine ('html') لتقديم * .html الصفحات. جرب هذا. يجب أن يحل المشكلة.

app.set('views', path.join(__dirname, 'views'));
**// Set EJS View Engine**
app.set('view engine','ejs');
**// Set HTML engine**
app.engine('html', require('ejs').renderFile);

سوف يعمل ملف. html

4
Dinesh Kanivu

يمكن تقديم ملفات HTML باستخدام محرك ejs:

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

وتأكد من تسمية ملفاتك ضمن "/ طرق العرض" بـ ".ejs".

على سبيل المثال "index.ejs".

3
JerryFZhang

لجعل محرك التجسيد يقبل html بدلاً من jade ، يمكنك اتباع الخطوات التالية ؛

Install consolidate and swig to your directory.

 npm install consolidate
 npm install swig

add following lines to your app.js file

var cons = require('consolidate');

// view engine setup
app.engine('html', cons.swig)
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');

add your view templates as .html inside “views” folder. Restart you node server and start the app in the browser.

هذا يجب أن تعمل

1
Md Mehadi Hasan Mozumder

html ليس محرك عرض ، لكن ejs توفر إمكانية كتابة كود html داخلها

0
Wael Chorfan

جرب هذا الحل البسيط ، نجحت بالنسبة لي

app.get('/', function(req, res){
    res.render('index.ehtml')
  });
0
Kiryamwibo Yenusu

لخادم صفحات HTML من خلال التوجيه ، لقد فعلت هذا.

var hbs = require('express-hbs');
app.engine('hbs', hbs.express4({
  partialsDir: __dirname + '/views/partials'
}));
app.set('views', __dirname + '/views');
app.set('view engine', 'hbs');

وإعادة تسمية ملفات .html الخاصة بي إلى ملفات .hbs - تدعم handbars html عادي

0
Avinash