请帮助摆脱这个错误:
我可以在开发expressjs应用程序之前连接到我的mongodb而没有任何问题。现在经过几次更新(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);
});
修改 我仍然没有答案,但我很确定这是因为模块版本的更新,为什么?因为我有完全相同的项目,但有一个不同的Package.json,当我做" npm insatll"然后运行那个,我收到猫鼬的警告,说"这是一个不稳定版的Mongoose"但它运行,我没有得到错误信息!它连接到我的mongodb,而最新版本给出了这个错误。很乐意帮助您理解它。
答案 0 :(得分:0)
我有一个解决方案: 在我的Package.json我有: “猫鼬”:“^ 4.0.7” 当我把它改为: “猫鼬”:“~3.8.8” 它安装和工作正常。
似乎问题是由于某些依赖项未安装而我无法理解原因。如果我尝试安装4.0.0或4.0.8,我会遇到同样的问题。我提供了一些错误堆栈输出(未格式化)只是你可以看到这些错误!标志着那里。我希望这可以帮助那些遇到同样问题的人。对不起,我无法完全弄清楚问题!
...
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
...