Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解决猫鼬连接未知问题?_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 如何解决猫鼬连接未知问题?

Javascript 如何解决猫鼬连接未知问题?,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我正在用Node、Express和MongoDB构建RESTAPI服务。我安装了MongoDB,它在本地主机27017上的PC上正常运行。我可以添加收藏并读取它们。在我的app.js文件中,我有这个设置 var express = require('express'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); mongoose.connect('mongod

我正在用Node、Express和MongoDB构建RESTAPI服务。我安装了MongoDB,它在本地主机27017上的PC上正常运行。我可以添加收藏并读取它们。在我的app.js文件中,我有这个设置

var express = require('express'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); mongoose.connect('mongodb://127.0.0.1:27017/bookAPI'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function callback () { console.log("h"); }); var app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); var port = process.env.PORT || 3000; app.use('/api', require('./routes/api.js')); app.listen(port, function(){ console.log('Running on port ' + port); }); var express=需要(“express”); var mongoose=require('mongoose'); var bodyParser=require('body-parser'); 猫鼬mongodb://127.0.0.1:27017/bookAPI'); var db=猫鼬连接; db.on('error',console.error.bind(console,'connectionerror:'); db.once('open',函数回调(){ 控制台日志(“h”); }); var-app=express(); use(bodyParser.urlencoded({extended:true})); use(bodyParser.json()); var port=process.env.port | 3000; app.use('/api',require('./routes/api.js')); app.listen(端口,函数(){ console.log('在端口上运行'+端口); }); 我总是遇到一个错误-MongoError-无法连接未知
我搜索了几个小时,没有找到任何解决办法。如何修复它,使其能够连接到工作正常的MongoDB…?

尝试更改:

mongoose.connect('mongodb://127.0.0.1:27017/bookAPI')

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
  console.log("h");
});
var appConnection = mongoose.createConnection('mongodb://127.0.0.1:27017/bookAPI');

appConnection.on('error', console.error.bind(console, 'connection error:'));
appConnection.once('open', function callback () {
  console.log("h");
});
进入:

mongoose.connect('mongodb://127.0.0.1:27017/bookAPI')

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
  console.log("h");
});
var appConnection = mongoose.createConnection('mongodb://127.0.0.1:27017/bookAPI');

appConnection.on('error', console.error.bind(console, 'connection error:'));
appConnection.once('open', function callback () {
  console.log("h");
});

我通过安装稳定的猫鼬解决了这个问题。 它是Mongoose4.x,我已经安装了3.8(npm安装)mongoose@3.8.*)在winxp中。

试试这个:

var connectionString = "mongodb://" + host + ":" + dport + "/" + dbName;
mongoose.connect(connectionString, function(err) {
    if (err) {
        console.log(err)
    } else {
        console.log('Connected to database ' +dbName);
    }
});
mongoose.connect('mongodb://127.0.0.1/bookAPI');


我使用的是Compass,这段代码运行得非常好。

您是否在同一台机器上运行mongod实例?还有,试试看mongodb://localhost:27017/bookAPII 运行mongod并插入一些虚拟数据。我在另一台安装了Win7的电脑上测试了同一个实例,它成功了。我后来发现新版本中的mongodb不支持XP。发现了问题!Mongoose文档将用户名和密码放入数据库路径,并将它们添加到选项中,效果非常好。