2015-07-14 2 views
1

Пожалуйста, помогите избавиться от этой ошибки:мангуст MongoDB ERRNO 10042

Я мог бы подключиться к MongoDB при разработке приложения expressjs без каких-либо проблем прежде. Теперь, после нескольких обновлений (nodejs, npm, bower ...), я начал получать ошибку, которую я даже не могу найти в Google. Это сообщение об ошибке:

14 Jul 19:10:31 - [nodemon] restarting due to change 
14 Jul 19:10:31 - [nodemon] starting `node api.js` 
    api listening on port: 3000 
    connection error: { [MongoError: connect Unknown sys 
    name: 'MongoError', 
    message: 'connect Unknown system errno 10042' } 

и это код, который попадает на эту ошибку:

var express = require('express'); 
    var app = express(); 
    var bodyParser = require('body-parser'); 
    var mongoose = require('mongoose'); 
    var port = Number(3000); 
    var UserSchema = ''; 
    var User = ''; 
    app.use(bodyParser.json()); 
    app.use(function(req, res, next){ 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS'); 
    res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization') 

    next(); 
    }); 

    mongoose.connect('mongodb://localhost/pjwt4'); 
    var db = mongoose.connection; 
    db.on('error', console.error.bind(console, 'connection error:')); 
    db.once('open', function (callback) { 
    UserSchema = mongoose.Schema({ 
    email: String, 
    password: String 
    }); 
    User = mongoose.model('User', UserSchema); 
    }); 

    app.post('/register', function(req, res){ 
    var user = req.body; 
     var newUser = new User({ 
     email: user.email, 
     password: user.password 
    }); 
    newUser.save(function(err){ 
     res.status(200).json(newUser); 
    }); 
    }); 

    app.listen(port, function(){ 
    console.log('api listening on port: ' + port); 
    }); 

Edit: Я до сих пор нет ответа на этот вопрос, но я уверен, что это из-за обновлений версии модуля, почему? потому что у меня есть точно такой же проект, но с другим Package.json, и когда я делаю «npm insatll», тогда запустите его, я получаю предупреждение от mongoose, говоря, что «Это UNSTABLE релиз Mongoose», но он работает, и я не получайте это сообщение об ошибке! Он подключается к моему mongodb, в то время как последняя версия дает эту ошибку. Будем рады помочь вам понять это.

+0

Вы уверены, что mongo работает? – Yousef

+0

100%, я не так много новичок с ним, ну и теперь эксперт. Ну, как вы видите, я получаю сообщение об ошибке от MongoDb, и он должен быть уже запущен, чтобы отправить его! –

ответ

0

У меня есть решение: в моем Package.json у меня есть: "мангуст": "^ 4.0.7" , когда я изменить его на: "мангуст": "~ 3.8.8" он устанавливает и отлично работает.

Похоже, что проблема связана с тем, что некоторые зависимости не установлены, и я не могу понять, почему. Если я пытаюсь установить 4.0.0 или 4.0.8, я получаю ту же проблему. Я предоставляю часть вывода стека ошибок (не отформатирован), вы можете видеть эти ошибки ERR! отмечает там. Надеюсь, это поможет кому-то, кто получит такую ​​же проблему. Извините, я не мог понять проблему полностью!

... 
node-pre-gyp ERR! stack  at ChildProcess.<anonymous> (i:\Documents 
gs\AA\Desktop\tst\2\node_modules\mongoose\node_modules\bson\node_modul 
t\node_modules\node-pre-gyp\lib\util\compile.js:83:29) 
node-pre-gyp ERR! stack  at ChildProcess.emit (events.js:98:17) 
node-pre-gyp ERR! stack  at maybeClose (child_process.js:756:16) 
node-pre-gyp ERR! stack  at Process.ChildProcess._handle.onexit (ch 
s.js:823:5) 
node-pre-gyp ERR! System Windows_NT 5.1.2600 
node-pre-gyp ERR! command "node" "i:\\Documents and Settings\\AA\\Desk 
2\\node_modules\\mongoose\\node_modules\\bson\\node_modules\\bson-ext\ 
les\\node-pre-gyp\\bin\\node-pre-gyp.js" "install" "--fallback-to-buil 
node-pre-gyp ERR! cwd i:\Documents and Settings\AA\Desktop\tst\2\node_ 
ngoose\node_modules\bson\node_modules\bson-ext 
node-pre-gyp ERR! node -v v0.10.33 
node-pre-gyp ERR! node-pre-gyp -v v0.6.4 
node-pre-gyp ERR! not ok 
... 
+0

какая версия mongo и node вы используете? – Yousef

+0

Yousef, пожалуйста: mongodb: v3.0.4, node: v0.10.33 –

+0

Вы пробовали обновление до узла 10.38? – Yousef

0

У меня все еще есть те же проблемы, и я не знаю, как полностью избавиться от них. Несмотря на то, что я могу продолжить свой проект без решения этой проблемы, он беспокоит мозг и благодаря Yousef, я уже сделал несколько шагов к решению. Вот насытить искусства иметь проблему:

тестовый код:

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 

var Cat = mongoose.model('Cat', { name: String }); 

var kitty = new Cat({ name: 'Samilik' }); 
kitty.save(function (err) { 
    if (err) { 
        console.log('error: ' + err.toString()); 
        return; 
     } 
console.log('hello'); 
}); 

если мой Package.json имеет в качестве своей зависимости:

"mongoose": "~3.8.8" 

, то выход есть:

$ node index.js 
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' } 

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

если у моего Package.json есть его зависимость:

"mongoose": "^4.0.7" 

выход воля:

$ node index.js 
j:\tmp\prjname\node_modules\mongoose\node_modules\mongodb\lib\server.js:228 
    process.nextTick(function() { throw err; }) 
             ^
Error: connect UNKNOWN 
    at exports._errnoException (util.js:746:11) 
    at connect (net.js:842:19) 
    at net.js:955:9 
    at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:81:16) 
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:99:10) 

Мои версии:

node: v0.12.7 
mongodb: v3.0.4 
npm: 2.11.3 

Может кто-нибудь пожалуйста, предложить некоторым образом из беспорядка пожалуйста?

Смежные вопросы