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

ظهور الخطأ expected expression, got '<' في node.js

Tamim Fahed

السؤال

أقوم باستخدام إطار العمل 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 '<'

ولا يظهر أي شيء ضمن الصفحة. كيف يمكنني حل هذه المشكلة؟

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

Recommended Posts

  • 1

الجزء التالي من الأكواد:

app.all('*', function (req, res) {
  res.sendFile(__dirname+'/index.html') 
})

تخبر Express أنه أيًا كان طلب المتصفح، سيقوم الخادم بإرسال ملف index.html. فعندما يقوم المتصفح بطلب ملفات JavaScript  مثل jquery-x.y.z.main.js أو angular.min.js سيقوم المتصفح سيقوم المتصفح بإرجاع محتوى ملف index.html و الذي يبدأ ب <!DOCTYPE html> و هو ما تسبب في ظهور خطأ JavaScript.

 

لذلك من المفترض أن تعالج الأكواد الخاصة بال callback الطلب المرسل و تقوم بتحديد الملف المطلوب تحديدًا و إرساله، أو/و يمكنك استخدام دالة أخرى غير app.all.

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

  • 1

يمكنك تجربة هذا الكود لحل مشكلتك

// استبدل appPath بالمسار المطلوب
app.set('appPath', 'public');
app.use(express.static(__dirname +'/public'));

app.route('/*')
  .get(function(req, res) {// استبدل appPath بالمسار المطلوب
    res.sendfile(app.get('appPath') + '/index.html');
  });

حيث يحتوي المسار  العام public على ملف index.html  ويشير إلى جميع الملفات في المجلد 

الكود express.static يخدم الملفات الثابتة بشكل صحيح (ملفات .js و css كما هو مشار إليه بواسطة index.html). بناءً على التعليمات البرمجية الخاصة بك ، ستحتاج على الأرجح إلى استخدام هذا السطر بدلاً من ذلك:

app.use(express.static(__dirname));

حيث أن جميع ملفات JS الخاصة بك ، index.html وملف خادم JS الخاص بك في نفس المسار.

.

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...