Mongoose: js-bson: فشل تحميل امتداد c ++ bson ، باستخدام إصدار JS خالص

تم إنشاؤها على ٧ سبتمبر ٢٠١٤  ·  115تعليقات  ·  مصدر: Automattic/mongoose

قمت بالنقر فوق Fork ، وقمت باستنساخ الريبو وأرفقت هذه الوحدة بمشروعي. فهمت هذا الخطأ

js-bson: Failed to load c++ bson extension, using pure JS version

nodejs v0.11.13 ، الأحدث osx . يبدو أن المشكلة تكمن في الوحدة النمطية mongodb (تعمل مع bson 0.2.15).

التعليق الأكثر فائدة

عند الاستخدام مع Keystone ، كان هذا هو ما نجح في تجاوز هذا الخطأ:

أضف ما يلي إلى الوديائع package.json :

"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",

من ثم

npm install

أخيرا

rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose

الآن لا أفهم الخطأ.

ال 115 كومينتر

نفس المشكلة

نفس المشكلة هنا ؛ التراجع إلى 3.8.15 يحل المشكلة على OSX تحت 0.11.13.

نعم ، لقد لاحظت هذا أيضًا. ستظل التعليمات البرمجية الخاصة بك تعمل ، فقط قد يكون أداءك أسوأ. سوف أصلح هذا للإصدار القادم.

نعم

نفس المشكلة

كذلك هنا. ستبقى 3.8.15 حتى التغييرات.

طيب .... نفس المشكلة!

أي تحديث على هذا؟

عانيت من نفس المشكلة (النمس 3.8.19 والعقدة 0.10.33). لقد قمت بحلها للتو بعد أن لاحظت أن تثبيت npm (وتحديث npm) يجمع إصدار Debug من bson ولكن index.js (موضوع في node_modules / mongoose / node_modules / mongodb / node_modules / bson / ext / index.js في حالتي) تتطلب نسخة الإصدار. كما ترى في هذا القسم من الكود:

try {
    // Load the precompiled win32 binary
    if(process.platform == "win32" && process.arch == "x64") {
      bson = require('./win32/x64/bson');  
    } else if(process.platform == "win32" && process.arch == "ia32") {
      bson = require('./win32/ia32/bson');  
    } else {
      bson = require('../build/Release/bson');  
    }   
} catch(err) {
    // Attempt to load the release bson version
    try {
        bson = require('../build/Release/bson');
    } catch (err) {
        console.error("js-bson: Failed to load c++ bson extension, using pure JS version");
        bson = require('../lib/bson/bson');
    }
}

دخلت إلى دليل البناء وقمت ببساطة بتجميع bson بالأمر التالي

make BUILDTYPE=Release all

في مكان ما في المستودع تم تغييره من Release إلى Debug ، لكنني لم أبحث فيه.

@ Gas3 ما هو إصدار npm الذي تستخدمه وما النظام الأساسي الذي تستخدمه؟ لا ينبغي أن يحدث هذا حقًا في العقدة المستقرة 0.10.x.

أيضًا ، لقد تمكنت من إعادة إنتاج هذا - يبدو وكأنه npm install نظيفًا مع npm 2.0.0 (الإصدار الذي يأتي مع العقدة 0.11.14) والعقدة 0.11.14 تجعل هذا العمل جيدًا. وهذا يعني ، rm -rf node_modules && npm install . هل يمكنك التحقق مما إذا كان هذا يساعد؟

فوق مستوى سطح البحر 2.1.7 في نظام التشغيل OS X 10.9.5

هل يمكنك تجربة تثبيت npm نظيف - قتل node_modules ثم npm install ؟ يبدو هذا حقًا وكأنه مشكلة في تغيير إصدارات العقدة دون إعادة بناء js-bson.

+1

brunobatista جرب rm -rf على وحداتك node_modules وقم بتثبيت npm نظيف.

نفس المشكلة:
إصدار العقدة: v0.10.35.0
إصدار npm: 2.1.18

نفس المشكلة هنا:
نظام التشغيل: Arch Linux
إصدار العقدة: v0.10.35.0
إصدار npm: 2.1.18
إصدار النمس: 3.8.21

حاولت 'rm -rf node_modules؛ ذاكرة التخزين المؤقت npm نظيفة ؛ تثبيت npm "بدون حظ.
تمت المحاولة أيضًا مع الإصدار 3.8.15 من Mongoose مع نفس النتائج.

كانت نفس المشكلة في Ubuntu 14.04. خطواتي:
1) تم تحديث npm إلى 2.1.18 من 1.3
2) ذاكرة التخزين المؤقت npm نظيفة
3) rm -rf node_modules
4) npm أنا
إنها تعمل!

لكني أرى خطأ في Windows 8.1. هذا "يتطلب" يلقي خطأ:

bson = require('./win32/ia32/bson'); 
The specified procedure could not be found.
C:\Users\d.kiriliuk\Projects\vozovoz\node_modules\mongoose\node_modules\mongodb\node_modules\bson\ext\win32\ia32\bson.node

الملف bson.node موجود

خطط لإصلاح هذا؟

نفس المشكلة

نظام التشغيل: OSX 10.10.2
إصدار العقدة: v0.10.36.0
إصدار npm: 2.3.0
إصدار النمس: 3.8.22

حاولت 'rm -rf node_modules؛ ذاكرة التخزين المؤقت npm نظيفة ؛ تثبيت npm "بدون حظ.

عند طلب النمس ، أحصل على هذا الناتج:

[Error: Module did not self-register.]
js-bson: Failed to load c++ bson extension, using pure JS version

+1

نفس المشكلة!!

نظام التشغيل: UBUNTU 14.04 (x64)
إصدار العقدة: 0.12.0
إصدار npm: 2.5.1
إصدار النمس: 3.8.21

[Error: node_modules/mongoose/node_modules/mongodb/node_modules/bson/build/Release/bson.node: undefined symbol: node_module_register]

(err): js-bson: Failed to load c++ bson extension, using pure JS version

أي حل أو خطط لإصلاحه؟

لم أجد شيئًا :(
أحاول إعادة تثبيت حزمتي ...
إعادة بناء bson مع node-gyp
تنظيف ذاكرة التخزين المؤقت npm و ....
لم يحدث شيء.
ما زلت أتلقى هذه الرسالة

أقوم بتحديث حزمة النمس الخاصة بي إلى 3.9.7
تم إصلاح المشكلة ولكن تلقيت هذه الرسالة من النمس:

##############################################################
#
#   !!! MONGOOSE WARNING !!!
#
#   This is an UNSTABLE release of Mongoose.
#   Unstable releases are available for preview/testing only.
#   DO NOT run this in production.
#
##############################################################

مثبت!
أستخدم أحدث إصدار مستقر من النمس (3.8.23)
تم حل المشكلة :)

"إصلاح" هذا بشكل عام ليس ممكنًا حقًا ، لأن رسالة الخطأ هذه يمكن أن تعني أحد الأشياء العديدة. قد يعني ذلك أنه ليس لديك إصدار مناسب من python أو مترجم C ++ مناسب مثبتًا (بسبب node-gyp) ، وقد يعني ذلك أنك قمت بتبديل إصدارات العقدة من وقت تثبيت npm mongoose ، إلخ.

فزت!

يرجى المعذرة ، لقد كان خطأي.

builderror.log:
gyp ERR! تكوين خطأ
gyp ERR! خطأ في المكدس: Python القابل للتنفيذ "python" هو v3.4.2 ، وهو غير مدعوم بواسطة gyp.
gyp ERR! المكدس يمكنك تمرير مفتاح --python للإشارة إلى Python> = v2.5.0 & <3.0.0.
gyp ERR! تكديس في failPythonVersion (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:108:14)
gyp ERR! تكديس في /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:97:9
gyp ERR! المكدس في ChildProcess.exithandler (child_process.js: 735: 7)
gyp ERR! مكدس في ChildProcess.emit (events.js: 110: 17)
gyp ERR! تكديس في ربما إغلاق (child_process.js: 1008: 16)
gyp ERR! كومة في المقبس.(child_process.js: 1176: 11)
gyp ERR! كومة في Socket.emit (events.js: 107: 17)
gyp ERR! كومة في Pipe.close (net.js: 476: 12)
gyp ERR! نظام Linux 3.14.27-1-lts
gyp ERR! أمر "عقدة" /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js "" إعادة البناء "
gyp ERR! cwd / home / node / sites / hellooo / src / node_modules / mongoose / node_modules / mongodb / node_modules / bson
gyp ERR! عقدة v0.12.0
gyp ERR! عقدة- gyp -v v1.0.2
gyp ERR! ليس جيدا

في حالتي كان الحل:

تعيين npm التكوين python python2.7

إعادة تثبيت النمس والعمل.

لم أهتم بهذه السطور من إخراج "تثبيت npm":

[email protected] تثبيت / home / node / sites / hellooo / src / node_modules / mongoose / node_modules / mongodb / node_modules / bson
(node-gyp renild 2> builderror.log) || (مخرج 0)

هذا يعني أنه كان هناك خطأ عند بناء bson لم ألاحظه.

شكرا جزيلا لك @ vkarpov15.

نعم ، نسيت أن أقول إنني قمت بتحديث تهيئة npm python الخاصة بي.

يارب احفظها

أهلا،
لقد قمت بتنفيذ "تثبيت rm -rf node_modules && npm" وأنا أرى أدناه.

/

[email protected] تثبيت c: \ Raj \ project \ meandemo \ node_modules \ mongoose \ node_modu
lesmongodb \ node_modules \ kerberos
(node-gyp renild 2> builderror.log) || (مخرج 0)

c: \ Raj \ project \ meandemo \ node_modules \ mongoose \ node_modulesmongodb \ node_modules \
kerberos> عقدة "c: \ Program Files \ nodejs \ node_modulesnpmbin \ node-gyp-bin .... \
node_modules \ node-gypbin \ node-gyp.js "إعادة البناء

[email protected] تثبيت c: \ Raj \ project \ meandemo \ node_modules \ mongoose \ node_modules
mongodb \ node_modulesbson
(node-gyp renild 2> builderror.log) || (مخرج 0)

عندما أقوم بتشغيل الخادم الخاص بي ، أحصل على الخطأ أدناه ..

{[خطأ: لا يمكن العثور على رمز الوحدة النمطية "../build/Release/bson"]: "MODULE_NOT_FOUND"}

js-bson: فشل تحميل امتداد c ++ bson ، باستخدام إصدار JS خالص
c: \ Raj \ project \ meandemo \ node_modules \ express \ lib \ router \ route.js: 170
رمي خطأ جديد (msg) ؛
^
خطأ: يتطلب Route.get () وظائف رد الاتصال ولكنه حصل على [كائن غير محدد]
في الطريق.(c: \ Raj \ project \ meandemo \ node_modules \ express \ lib \ route
r \ route.js: 170: 15)
في Array.forEach (أصلي)
في الطريق. (وظيفة مجهولة) مثل get
في EventEmitter.app. (وظيفة مجهولة) (c: \ Raj \ project \ meandemo \ node_modul
es \ express \ lib \ application.js: 429: 19)
في الكائن.(c: \ Raj \ project \ meandemo \ server.js: 23: 5)
في Module._compile (module.js: 460: 26)
في Object.Module._extensions..js (module.js: 478: 10)
في Module.load (module.js: 355: 32)
في Function.Module._load (module.js: 310: 12)
في Function.Module.runMain (module.js: 501: 10)

فيما يلي تفاصيل الإصدار الخاص بي:
نظام التشغيل: Windows 7
العقدة: 0.12.0
النمس: 3.8.23
npm: 2.5.1

الرجاء الاقتراح

مرحبًا rajnav ، ألق نظرة على builderror.log ، يمكن أن يظهر لك أصل المشكلة.

نفس المشكلة ولكن builerror.log يحتوي على سطر واحد فقط:

child_process: customFds option is deprecated, use stdio instead.

في المشروع / node_modules / mongoose / node_modules / mongodb / node_modules / bson

أنا أستخدم osx yosemite والعقدة 0.12.x

تلقيت هذا التحذير أيضًا ، لكنه نجح معي.

أنا أستخدم فيدورا 20 مع العقدة 0.12.x وحصلت على هذا التحذير. هل من الآمن الاستمرار في العمل معها؟
ليس لدي أي مشاكل مع العقدة 0.10.x

يبدو تحذيرًا بشأن الإهمال ، لكنه غير متأكد من الآثار اللاحقة. كما قلت سابقًا ، إنه يعمل بشكل جيد بالنسبة لي.

rajnav يبدو أن الخطأ في Express. خطأ bson غير موجود هو تحذير بأنه لا يمكنه العثور على ثنائي bson الأصلي المترجم ، ولا ينبغي أن يتسبب في حدوث عطل.

أيضًا ، لقد رأيت تحذيرًا من إيقاف خيار customFds. يجب أن لا يزال يعمل. سأحقق أكثر من أين يأتي ذلك.

توفر ملفات builderror.log إجابة.
لقد قمت بتمرير علامة --python=python2.7 مع تثبيت npm ، تمامًا كما هو مطلوب ، ولا مزيد من الأخطاء. وقد عملت على كل من تثبيتات windows 64bit و ubuntu.

npm install --python=[path to python] mongoose

ملاحظة
على جهاز windows ، لا يزال لدي
child_process: customFds option is deprecated, use stdio instead.
في ملف builderror.log ، لكن هذا لا يتسبب في ظهور أي أخطاء في وحدة تحكم العقدة عند تشغيل التطبيق.

النمس: 3.8.24
npm: 2.7.9
نظام التشغيل: Arch Linux

عمل
rm -rm node_modules/
npm cache clean
npm config set python python2.7
npm install
عملت من أجلي.

قم بعمل نظيف npm install
حدث لي بعد تحديث العقدة.

النمس 3.8.21.2
أوبونتو 14.04.2

استخدام

npm config set python python2.7
cd node_modules/mongoose/node_modules/mongodb/node_modules/bson
npm install

عملت لي!

لذا فإن الثعبان شرط لاستخدام النمس ؟؟؟ ليس من الواضح في المستندات ، لذلك لا يُسمح لي بتثبيته في بيئة الإنتاج. (ما لم يكن موثقا ...) :(

يتطلب Mongoose Python فقط بقدر ما يتطلب node-gyp (غلاف العقدة حول نظام بناء v8) Python. بايثون ليست تبعية وقت تشغيل للنمس. إذا كنت بحاجة إلى وثائق تفيد بأن النمس يحتاج إلى python لإنشاء محلل C ++ bson ، فانقر هنا .

ومع ذلك ، مرة أخرى ، سيعمل النمس كما هو متوقع حتى لو لم يتمكن من إنشاء محلل bson. الميزة الوحيدة التي تتطلب نجاح node-gyp هي آلية مصادقة kerberos.

شكرا جزيلا،

@ jayflo هذا هو worf بالنسبة لي أيضًا ، الآن لا أريد المزيد من المشاكل التي تسبب ذلك !!

+1 هنا mongodb / js-bson / issues / 118

هذا سوف يحل مشاكلك:

$ cd node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/
$ npm install

لذلك كان واضحًا جدًا بالنسبة لي أن كل من قام بدمج اللب في النمس في النمس هو المسؤول عن ذلك. غاب شخص ما عن تثبيت npm هناك. هل هناك طريقة لتصعيد هذا الأمر ، حيث من الواضح أن آلاف المستخدمين قد تأثروا ويمكن اعتبار التأثير (التجاري) بأمان مرتفعًا جدًا ، على الأقل في رأيي ، لكنني كنت مخطئًا من قبل.

لم يفوت أحد تثبيت npm ، فهو يعمل بشكل جيد إذا تم تكوين نظامك لتشغيل node-gyp بشكل صحيح. ومع ذلك ، فإن تكوين نظامك لتشغيل node-gyp بشكل صحيح يمثل ألمًا كبيرًا في الخلف ، لذلك نحن نفكر في إنشاء ثنائيات مسبقة ومحاولة تثبيت npm لتنزيل برنامج ثنائي تم إنشاؤه مسبقًا أولاً ما لم تقم بإلغاء الاشتراك.

بالنسبة لتأثير الأعمال ، مرة أخرى ، يعد هذا _ تحذيرًا_ وليس _خطأ_.

شكرا على إجابتك التوضيحية. لن يبدأ grunt و node إذا لم أقم بتثبيت npm في دليل mongo-core ، وبالتالي فإن هذا التحذير هو توقف عرض على الأقل في السيناريو الخاص بي ومن الواضح (التمرير لأعلى) في العديد من الآخرين. أستطيع أن أرى أنه من وجهة نظرك هذا ليس من شأن مشاريعك ، ومع ذلك فإنه يفشل في تشغيله حديثًا على أنظمة Linux و Mac و Windows على حدٍ سواء.

Am 17.04.2015 um 15:33 schrieb Valeri Karpov [email protected] :

rning ، ليس خطأ.

إذا لم يبدأوا ، فهناك خطأ آخر. هذه الرسالة عبارة عن تحذير ولن تمنعك من بدء النخر أو العقدة. هل يمكنك أن تريني بقية الإخراج من أمر تثبيت npm الأصلي (قبل تشغيل تثبيت npm في mongodb-core)؟

مرة أخرى ، إذا كنت تريد التخلص من هذا التحذير الآن ، فإن الطريقة الوحيدة الآن هي إعداد تبعيات node-gyp .

شكرا vkarpov15 لإصرارها في هذا الموضوع. أريد فقط طرح +1 بنفسي حتى تعرف أن هناك آخر بنفس المشكلة. بعد قولي هذا ، ما زلت قادرًا على تشغيل طلبي ، لذلك سأأخذ نصيحتك بأن هذا ليس خطأ ، ولكنه تحذير. لذلك ، نأمل أن يتم حل هذا التحذير في تحديث مستقبلي من أجل راحة البال الإضافية. شكرا لك مرة أخرى.

لمعلوماتك ~ ظهر هذا التحذير بعد أن قمت بتحديث العقدة من 10 إلى 12 ...

camachowebworld حاول مسح node_modules وإعادة تثبيت rm -rf node_modules && npm install . عادة عندما تقوم بترقية إصدار عقدة رئيسية ، فإنك تحتاج إلى إعادة بناء أي امتدادات أصلية ، بما في ذلك bson. إعادة التثبيت يجب أن تفي بالغرض.

نظام التشغيل Ubuntu 14.04.1 LTS (AWS EC2)
اضطررت إلى تشغيل "sudo apt-get install build-basic"

ربما يمكن أن تساعد شخص ما.

vkarpov15 شكرا للرد على msg. اسف على نقص الخبرة. أنت تقول لـ ، "حاول مسح node_modules وإعادة تثبيت rm -rf node_modules && npm install". أنا على النوافذ. أين يمكنني تشغيل هذه الأوامر؟ أحاول تشغيل "rm -rf node_modules" في مجلد مشروعي يخبرني "rm ليس .... الأمر".

ما عليك سوى حذف node_modules في مستكشف Windows ، نفس الشيء. ثم قم بتشغيل تثبيت npm أينما قمت بتشغيله في الأصل.

اقتراح عام ، استخدم git bash + mingw إذا كنت تقوم بتطوير العقدة على Windows

حصلت على نفس الخطأ مباشرة بعد تحديث العقدة إلى إصدار 0.12.3 على Windows 7 (x64).
لقد قمت بالفعل بتثبيت: node-gyp, node-pre-gyp, python, .NET SDK -> بعد ذلك ، لم أعد أتلقى رسائل خطأ حول التجميع. والمجلد النمس 3.8.28 mongoose\node_modules\mongodb\node_modules\bson\build\Release
يحتوي على هذه الملفات:

/obj
/bson.exp
/bson.lib
/bson.node
/bson.pdb

لكن الرسالة

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }  
js-bson: Failed to load c++ bson extension, using pure JS version

لا يزال يظهر

محدث : لقد وجدت الحل بالنسبة لي.

لمستخدمي iojs:

أحدث الإصدارات لا تدعم النمس جيدًا. الرجوع إلى إصدار أقدم لآخر إصدار مستقر v2.0.0 (استخدم nvm من أجل الله). وسوف تعمل مثل السحر!

إضافة هذه المعلومات فقط في حالة ، هنا في شركتنا واجهتنا هذه المشكلة مؤخرًا.

في windows ، قمت بحل هذه المشكلة عن طريق تغيير سطر واحد في:

node_modulesmongodb \ node_modulesmongodb-core \ node_modulesbson \ node_modulesbons-ext \ ext \ index.js

السطر بعد:

// حاول تحميل نسخة الإصدار bson
محاولة {

from: bson = تتطلب ('../ build / Release / bson') ؛
to: bson = تتطلب ('../../../ lib / bson / bson') ؛

رسالة الخطأ:
{[خطأ: لا يمكن العثور على رمز الوحدة النمطية "../build/Release/bson"]: "MODULE_NOT_FOUND"}
js-bson: فشل تحميل امتداد c ++ bson ، باستخدام إصدار JS خالص

ذهب الآن ويبدو أن المونجو يعمل بشكل جيد. استخدام برنامج تشغيل mongodb ver. 2.0.33

آمل أن يساعد.

هل يمكن لأحد أن يؤكد أن حل ChrisGciso قابل للتطبيق؟ نحن نواجه الآن نفس المشكلة القديمة مع Atlassian Bamboo. أي أفكار حول كيفية الإصلاح باستخدام Bamboo؟

إنه ليس حلاً ، مجرد اختراق. بنفس الطريقة ، يمكنك فقط إزالة مخرجات وحدة التحكم في هذا الملف.

أجد صعوبة في فهم كيف أن الرجوع إلى JS Bson والتحذير من عدم أدائه مثل تطبيق C ++ ، هو مجرد مشكلة تجميلية.

ستيفان كريستين
Edelweißstr. 4
81541 ميونخ

+49 151 5461 8086
س. [email protected]
http://meshfields.de

في 9. يونيو 2015 17:38 +0200 ، كتب

إنه ليس حلاً ، مجرد اختراق. بنفس الطريقة ، يمكنك فقط إزالة مخرجات وحدة التحكم في هذا الملف.

-
قم بالرد على هذه الرسالة الإلكترونية مباشرةً أو اعرضها على GitHub (https://github.com/Automattic/mongoose/issues/2285#issuecomment-110406406).

ChrisGciso هذا فقط كنس التحذير تحت البساط. هذا يعني أنه سيستخدم محلل JavaScript bson دون التحقق من المحلل المترجم.

nottinhill ليس لدي أي خبرة مع الخيزران للأسف ، لذلك لا يمكنني المساعدة. سواء كانت "مشكلة تجميلية" تعتمد على حالة الاستخدام الخاصة بك - على سبيل المثال ، في بيئة CI مثل الخيزران ، فإنك تقلق كثيرًا بشكل عام بشأن تقليل جزء من الثانية هنا وحفظ بضع بايت من الذاكرة هناك. في بيئة الإنتاج الخاصة بك هو المكان الذي من المحتمل أن يكون مهمًا ، وإذا كنت تحتاج حقًا إلى جزء إضافي من الأداء ، فإن إعداد تبعيات node-gyp وإعادة التثبيت هو ما تحتاج إلى القيام به.

كما هو ، أحد الأشياء التي نأمل القيام بها في المستقبل هو سد الفجوة بين المحلل اللغوي المترجم bson ومحلل JavaScript bson. إذا كنت ترغب في المساهمة ، فنحن نرحب بك على http://github.com/mongodb/js-bson :)

@ vkarpov15 قد يكون مسح رسائل "خطأ" تحت السجادة إذا لم يكن لديهم دقة بسيطة ولا تسبب أي تأثير مادي على الأداء أفضل من مزجها مع أخطاء حقيقية تعكس مشاكل حقيقية. إن رؤية هذا الخطأ مرارًا وتكرارًا لأشهر ليس جيدًا ما لم يكن من الممكن معالجته ، خاصة للأشخاص الجدد الذين يرغبون في استخدام برنامج التشغيل. هل هناك حل أفضل لا يتضمن سلسلة معقدة من الخطوات للتخلص من رسالة الخطأ؟

ربما يجب تسميته "معلومات" بدلاً من "خطأ"؟

نقطة عادلة. هناك علامة native_parser التي يجب أن تمنع mongodb من البحث عن النسخة المترجمة من js-bson.

أنا في Fedora 22 ، العقدة v0.12.4 ، مثبتة الليلة

تعيين npm التكوين python python2.7
=> تحل مشاكلي ، تشك

كنت أواجه هذه المشكلة هنا في حاوية Docker archlinux ، وكان الحل:

$ pacman -S gcc make nodejs npm python2
$ npm config set python python2.7
$ npm install -g node-gyp

النمس الإصدار 4.0.5

فيما يتعلق بخطأ Bamboo - لقد قمت بحل المشكلة عن طريق إنشاء مهمة npm وتعيين متغير البيئة الخاص بك كالمعتاد ، ثم المعلمات التالية:

install node-gyp

سترى شكاوى حول العلم العالمي المفقود ، لكن في Bamboo على الأقل لا نفضل التثبيتات العالمية بسبب مرونة الترحيل.

عودة خطأ

build   17-Jun-2015 10:30:53    Running "mochaTest:src" (mochaTest) task
build   17-Jun-2015 10:30:53    { [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
error   17-Jun-2015 10:30:53    js-bson: Failed to load c++ bson extension, using pure JS version

نعم ، لقد نجحت معي ، شكرًا لك.

في الواقع ، كان علي أن أقوم بتثبيت دول مجلس التعاون الخليجي أيضًا وأن أجعلها أيضًا ، حتى تتمكن من تجميع cpp في ملف ثنائي.

-
فريدريكو سوزا
الشريك المؤسس لشركة RioBus - http://riob.us/ http://riob.us/
الهاتف: (+55 21) 97285-8787
ريو دي جانيرو، البرازيل

في 17/06/2015، الساعة 05:22، Stephan Kristyn [email protected] escreveu:

فيما يتعلق بخطأ Bamboo - لقد قمت بحل المشكلة عن طريق إنشاء مهمة npm وتعيين متغير البيئة الخاص بك كالمعتاد ، ثم المعلمات التالية:

تثبيت node-gyp
سترى شكاوى حول العلم العالمي المفقود ، لكن في Bamboo على الأقل لا نفضل التثبيتات العالمية بسبب مرونة الترحيل.

-
قم بالرد على هذه الرسالة الإلكترونية مباشرةً أو اعرضها على GitHub https://github.com/Automattic/mongoose/issues/2285#issuecomment -112714644.

كانت لدي هذه المشكلة. تم تحديث connect-mongo إلى 0.8.2 و mongoose إلى الإصدار 4.0.7 ، وقد عمل بشكل جيد.

العقدة v0.12.2 ، NPM 2.13.0 ، OSX 10.10.4

نفس المشكلة باستخدام sailsjs

قم بالترقية إلى mongoose> = 4.0.6 حتى لا تستخدم bson ملحقات C ++ بعد الآن. في كلتا الحالتين ، هذه الرسالة هي مجرد تحذير.

عملت الترقية إلى 4.0.6 بالنسبة لي ، شكرًا vkarpov15.

نفس المشكلة. استخدم xUbuntu 15.04.
حاولت تثبيت حزمة libkrb5-dev، nodejs-legacy. وترقية Node.js v4.1.0 و npm 2.14.3 و mongoose 4.1.7. ولكن لا يعمل :- (

هل جربت إعادة التثبيت النظيف؟ أيضًا ، لا تقلق بشأن libkrb ما لم تهتم بمصادقة kerberos ، فسيعمل النمس بشكل جيد بدونه.

TimePower هل جربت تثبيت node-

أتلقى الخطأ التالي عند محاولة استخدام أي شيء متعلق بـ Mongoose:

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

العقدة 4.1.0 والنمس 4.1.10.

rm -rf node_modules && npm cache clean && npm install @ جاكدبيرنييه

كما أنه تحذير وليس خطأ.

قم بالترقية إلى mongoose> = 4.0.6 حتى لا تستخدم bson ملحقات C ++ بعد الآن.

أنا أستخدم Mongoose 4.1.10 وما زلت أتلقى الخطأ.

لقد حللت تخفيض تصنيف mongodb إلى 2.6

rm -rf node_modules && npm cache clean && npm install
لا يصلح لي بعد نفس الخطأ

نفس المشكلة هنا:

rm -rf node_modules && npm cache clean && npm install
لا يصلح لي بعد نفس الخطأ

js-bson: Failed to load c++ bson extension, using pure JS version

الإعداد الخاص بي:

  • آلة AWS Ubuntu: Ubuntu 14.04.1 LTS
  • node.js v0.12.7
  • النمس 4.1.12
  • MongoDB 2.6.5

بدأ كل هذا عندما قمت بترقية nodejs ، ولم تساعد الترقية إلى Mongoose 4.1.12 أيضًا.

كيف تظل هذه مشكلة ؟؟؟ هل يجب أن أزعج نفسي بترك أي معلومات إضافية هنا ... لقد فعل الجميع ذلك من أجلي .... هل سيقوم أي شخص باستقرار هذا أم ماذا ؟؟؟

ليس خطأ ، مجرد تحذير. هناك أيضًا معلومات كافية هناك / حول هذا الموضوع حول كيفية إعداد node-gyp بشكل صحيح.

@ vkarpov15 شكرا على الرد. هذا خطأ وليس تحذير: فشل تثبيت npm بعد هذه الرسالة. هل يمكن أن تخبرني المزيد حول كيفية ارتباط ذلك بـ node-gyp.

لا ينتج تثبيت npm هذه الرسالة ، لذلك أشك بشدة في ذلك.

أشك في أنه يتعلق بالعقدة بأي شكل من الأشكال. أنا على OS X 10.11 ، لقد كنت أستخدم الكثير من التبعيات الأصلية مثل node-sass ، حتى قبل أن يصدروا ثنائيات لإصدارات Node.js الجديدة وتم تجميعها بشكل صحيح. لذلك الإعداد الخاص بي على ما يرام. و بعد:

node keystone.js 
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

لقد قمت بتثبيت جميع التبعيات مباشرة من Node.js 4.

@ vkarpov15 أنت على حق ، خطأي. حدث الخطأ عند محاولة طلب الوحدة النمطية في العقدة ، بعد التحديث باستخدام npm. حاولت أن أجعلها تعمل لساعات عديدة ، لكن يبدو أن عدم تقديم النصائح عبر الإنترنت كان مفيدًا ، لذلك قمت بخفض التصنيف مرة أخرى ولم ألقي نظرة عليها منذ ذلك الحين.

لقد حللت ذلك للتو.

عند تثبيت وحدة mongoose بواسطة npm ، فإنها لا تحتوي على وحدة bson مضمنة في مجلدها. في ملف node_modules / mongoose / node_modules / mongodb / node_modules / bson / ext / index.js ، قم بتغيير الخط

bson = تتطلب ('../ build / Release / bson') ؛
إلى

bson = تتطلب ('bson') ؛

نفس المشكلة على FreeBSD.

كيف نحصل على امتداد C ++ BSON للبناء؟


هذا ما قاله npm install :

> [email protected] install /usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

gmake: Entering directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos/build'
  SOLINK_MODULE(target) Release/obj.target/kerberos.node
  COPY Release/kerberos.node
gmake: Leaving directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/kerberos/build'

> [email protected] install /usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

gmake: Entering directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson/build'
  CXX(target) Release/obj.target/bson/ext/bson.o
bson.target.mk:88: recipe for target 'Release/obj.target/bson/ext/bson.o' failed
gmake: Leaving directory '/usr/local/herbert/node_modules/ac-node/node_modules/mongodb/node_modules/bson/build'
[email protected] node_modules/crypto

[email protected] node_modules/bson

نفس المشكلة هنا

@ vkarpov15 أؤكد ما يقوله mgol . هناك مشكلة أخرى غير التهيئة الخاطئة لـ node-gyp . لدي أيضًا الكثير من بناء الوحدات الأصلية الأخرى بشكل صحيح. لا يوجد خطأ يحدث عند التثبيت.

هناك مشكلة في node v4 تمنع وجود c++ bson extension ، مما أدى إلى ظهور التحذير js-bson: Failed to load c++ bson extension, using pure JS version .

هذا هو السجل الكامل عند تثبيت mongoose ( [email protected] ) على node v4

apairet$ rm -rf node_modules/mongoose
apairet$ npm install
-
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bson/ext/bson.o

> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o

[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected])

من أجل الاكتمال ، قمت بتثبيت أحدث إصدار من mongoose ( [email protected] ) لكن الخطأ ظل كما هو:

apairet$ npm install mongoose<strong i="22">@latest</strong>
npm WARN peerDependencies The peer dependency kerberos@~0.0 included from mongodb-core will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
-
> [email protected] install /sources/project/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
        maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
                   ^
1 warning generated.
  CC(target) Release/obj.target/kerberos/lib/base64.o
  CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
  SOLINK_MODULE(target) Release/kerberos.node
[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

أخبرني إذا كان بإمكاني تقديم معلومات إضافية.
rgds

antoinepairet أي إصدار من العقدة بالضبط؟ هناك الكثير من إصدارات v4.

شكرا لإجابتك السريعة @ vkarpov15. انا حقا اقدر هذا :-).
آسف لعدم ذكر إصدار العقدة في رسالتي السابقة. اختبرت 3 إصدارات من العقد:
4.2.1 ، 4.1.0 و 4.0.0 بالإجراء التالي:

  1. تثبيت nvm 4.1.0
  2. rm -rf node_modules /
  3. تثبيت npm
  4. اختبر التطبيق ومعرفة ما إذا كان التحذير سيحدث أم لا

في كل مرة يكون لديك js-bson: Failed to load c++ bson extension, using pure JS version

لقد أجريت الاختبارات الموسعة على OSX. على Linux ، قمت باختبار 4.2.1 .

اسمحوا لي أن أعرف إذا كان بإمكاني تقديم المزيد من المعلومات / الاختبارات.
شكرا لك مرة أخرى

ملاحظة: AsyaHristeva الأمر لا يتعلق بـ C++ IDE. وحدات أصلية أخرى تبني بشكل جيد :-)

يعمل Hmm على 4.1.1 [email protected] بشكل جيد على جهاز Mac الخاص بي ، وفي كلتا الحالتين لا يجب أن يحدث هذا الخطأ لأن [email protected] يستخدم [email protected] ، والذي لا يستخدم امتداد C ++ لـ BSON. لقد تلقيت هذا الخطأ مع [email protected] ، ولكن هذا لأن إصدارات برنامج التشغيل mongodb القديم ، [email protected] ، لا تدعم حقًا العقدة> = 4 .

أتلقى نفس الخطأ مع Node v4.2.4 و Mongo v2.6.11 و OSX 10.11.2

npm install [email protected]
npm WARN peerDependencies The peer dependency kerberos@~0.0 included from mongodb-core will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency 
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.

> [email protected] install /Users/jw/Work/sp_app/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
        maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
                   ^
1 warning generated.
  CC(target) Release/obj.target/kerberos/lib/base64.o
  CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
  SOLINK_MODULE(target) Release/kerberos.node
npm WARN unmet dependency /Users/jw/Work/sp_app/node_modules/latest/node_modules/npm requires request@'~2.67.0' but will load
npm WARN unmet dependency /Users/jw/Work/sp_app/node_modules/request,
npm WARN unmet dependency which is version 2.27.0
[email protected] node_modules/mongoose
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

عندما أقوم بتشغيل تطبيقي ، أحصل على:

{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version

أتساءل عما إذا كانت هذه مشكلة OSX لأنني لا أواجه أي مشاكل على Linux. هل يمكن أن يكون لهذا علاقة مع مجلس التعاون الخليجي ، مترجم Clang الافتراضي المثبت بواسطة XCode.

gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin15.2.0
Thread model: posix

@ vkarpov15 صحيح ، قم بتحديث mongoose إلى 4.4.5 لإصلاح هذه المشكلة

@ vkarpov15 ، هل أنا محق في افتراض أن سبب هذه المشكلة هو تشغيل إصدار أحدث من Mongoose مع إصدارات أقدم من MongoDB - الإصدار 2.X على سبيل المثال؟

لا ، نسخة mongodb لا علاقة لها بها.

[مثبت]

كما أتيحت لي هذه المشكلة


نظام التشغيل: Windows 10
العقدة: v4.2.3
npm: 2.14.7


لقد قمت فقط بتعيين مسار الثعبان

npm config set python python2.7

وأعد تثبيت النمس

npm install mongoose


وعملت.

@ nityanarayan44 لقد

تضمين التغريدة
أستخدم OSX 10.10.5 ، العقدة 4.4.2 ، npm 2.15.0 ، حجر الزاوية 0.3.17

ذهبت إلى node_modules/keystone/package.json ، وقمت بإزالة mongoose من التبعيات ، إذن

npm config set python python2.7
npm install mongoose

هذا عمل لي:

عملت أيضًا بالنسبة لي على حل @ nityanarayan44

نفس المشكلة إصداري هو العقدة 2.15 ، منصة Centos

لا يوجد إصدار من Node مثل 2.15 لذا أعتقد أنك تقصد io.js. و
لم يتم دعم io.js بواسطة upstream لفترة طويلة ، قم بالترقية إلى Node 4
أو 6 في أسرع وقت ممكن.

ميشائ جوجوبيوسكي

arefm Thx ، لقد

mgol كان يتحدث عن npm . أحدث إصدار من npm2 هو 2.15.4.

mnpenner أعتقد أنه 3.8.8

تضمين التغريدة البعض منا عالق في npm 2 لأن 3 بها مجموعة كاملة من المشاكل المختلفة.

mgol عذرًا ، إصدار npm هو 2.15 ، وليس العقدة.

mnpenner نعم ، أنت رجل ذكي!

عند الاستخدام مع Keystone ، كان هذا هو ما نجح في تجاوز هذا الخطأ:

أضف ما يلي إلى الوديائع package.json :

"mongoose": "~4.4.16",
"mongodb": "~2.1.18",
"keystone": "^0.3.19",

من ثم

npm install

أخيرا

rm -rf node_modules/keystone/node_modules/mongodb
rm -rf node_modules/keystone/node_modules/mongoose

الآن لا أفهم الخطأ.

aventurella لقد قدمته .

ولكن الآن لدينا بعض الأخطاء الدخيلة وبعض الأخطاء المفقودة ، هل هذا جيد؟

@ tomwang1013 أدى تحديث النمس إلى حل المشكلة ، ولكن بطريقة ما لا يتصل

في حالتنا ، كان سبب عدم العثور على إصدار c ++ bson هو أننا كنا وراء وكيل شركة وأن شيئًا ما في عملية بناء BSON يحتاج للوصول لجلب الملفات. عندما بحثنا في node_modules / bson / builderror.log ، رأينا خطأ مثل هذا:

gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: connect ECONNREFUSED
gyp ERR! stack     at errnoException (net.js:904:11)
gyp ERR! stack     at Object.afterConnect [as oncomplete] (net.js:895:19)

مما يشير إلى أن الوكيل قد يكون هو المشكلة.

آسف لاستيقاظ التعليقات على هذا ، لكنني أردت نشر هذا لأي شخص آخر يضرب هذا في المستقبل لأن هذا الموضوع كان مفيدًا جدًا في حل مشكلتنا.

aventurella شكرا

لدي هذه المشكلة على نظام التشغيل Windows 10 ، ولا يمكنني تشغيل مثال "أساسي" إما ... من المفترض أن توفر ملفات التثبيت جميع العناصر لتشغيل شيء ما ، أو على الأقل لديها الإرشادات للقيام بذلك ...
هذا أمر مزعج سخيف !!!!! : @

@ GST5555 إذا كنت ترغب في الحصول على بعض المساعدة في الوقت الفعلي ، فلا تتردد في الانضمام إلينا في أي من هذه المجتمعات:
جيتر
تثاقل

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات