لا تستخدم node.js في أي شيء جاد
رددت سابقاً على نفس النقطة:
لغة جافاسكريبت لم تنشئ للتعامل مع الـ bytes فهي أساساً للويب ويمكنها التعامل بشكل جيد مع النصوص (Strings). لكن رغم ذلك node.js يضيف على جافاسكريبت الكثير من الأمور واحداها Buffer class التي تسمح بالتعامل مع المعلومات على مستوى البايت بشكل ممتاز وباستخدامه يمكن برمجة أي تطبيق.
بخصوص استخدام Ruby أو Python لبرمجة تطبيقات تعتمد على مبدء event-driven فهو أمر ممكن باستخدام مكتبات خاصة ولقد اطلعت سابقاً على Event Machine في روبي قبل node.js لكن المشكلة هنا أن أغلب مكتبات هذه اللغات الأخرى لم تبرمج لتتعامل باسلوب event-driven عكس نود الذي بني كل شيء فيه على هذا الأساس. هذا يعني في روبي وبايثون أنت تحتاج لمكتبة برمجت خصيصاً لتتوافق مع المكتبة التي تستخدمها لتوفير event-driven وهذا قد يسبب مشاكل غير متوقعة.
أنا أؤمن باستخدام أفضل وسيلة لأداء المهمة. لغة جافاسكريبت بها عيوب وليس الخيار الأمثل لانجاز كل شيء، كذلك لغة بايثون وروبي وسي وحتى جافا. أنا لن أبرمج تطبيق ويب باستخدام C ولن أستخدم جافاسكريبت للتلاعب بالـ bytes.
المفروض في جافاسكربت أنها لغة عامة الأغراض لكنها محاصرة sand-boxed و nodejs أزالة هذا الحصار وفتحت المجال لعمل أي تطبيقات بكامل الصلاحيات وتعمل على طرف الخادم.
أهداف التصميم قد تعني تسهيل أشياء معينة على حساب السرعة لكنها لا تعني أن تعطي نتائج خطأ عند القيام بعمليات حسابية معينة مثل إزاحة الأرقام.
انظر أعطيه رقم يعطيني آخر (منزلة الآحاد كانت 3 صارت 2)
صراحة ليست لدي أي معرفة بخصائص اللغة ، أنا أستفسر فقط لأني أود اختيار احدى اللغات السيرفر ولا أعلم أيها الأنسب وقد سألت أحدهم وأجابني أن النود في تطور سريع جدا هته الأيام والمستقبل متفتح أكثر على مطوري النود ، هل ترى أن هذا صحيح (سأقدم على دورة في احدى المدارس المتخصصة وقد اخترت لغة النود أتمنى أن تمدني برأيك )
الحل للمشكة بسيط جدًا
وهناك حل اخر من دون مكتبة
var json = ('{"_version_":1523062494329831424}');
fixed = json.replace(/([\[:])?(\d+)([,\}\]])/g, "$1\"$2\"$3");
JSON.parse(fixed);
او
var json='{"data":{"username":"Brad","userID":1523062494329831424,"location":"London"}}';
json = json.replace(new RegExp('([0-9]+)',"g"),'"$1”’);
JSON.parse(json);
التعليقات