Mic*_*msø 27 mongoose mongodb node.js
我收到以下错误:
Warning { MongoError: failed to connect to server [mongodb:27017] on first connect
at Pool.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/topologies/server.js:325:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:188:7)
at Connection.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/pool.js:270:12)
at Connection.g (events.js:292:16)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:191:7)
at Socket.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/connection.js:173:49)
at Socket.g (events.js:292:16)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at connectErrorNT (net.js:1025:8)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
name: 'MongoError',
message: 'failed to connect to server [mongodb:27017] on first connect' }
Run Code Online (Sandbox Code Playgroud)
即使我在运行Mongo的终端窗口中得到这个:
2016-12-25T03:45:23.715+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:58868 #8 (8 connections now open)
Run Code Online (Sandbox Code Playgroud)
它看起来有点连接..
我试过了两个
$ mongod
Run Code Online (Sandbox Code Playgroud)
和
$ brew services start mongo
Run Code Online (Sandbox Code Playgroud)
这是我的test_helper.js
const mongoose = require('mongoose');
mongoose.connect('mongodb:localhost/users_test');
mongoose.connection
.once('open', () => console.log('Good to go!'))
.on('error', (error) => {
console.warn('Warning', error);
});
Run Code Online (Sandbox Code Playgroud)
我没有专门制作数据库"users_test",因为我认为mongoose或mongo或两者都会动态执行此操作.
我试过"localhost"和"127.0.0.1".我在OSX 10.11.5上运行Node 7.3.0和Mongo 3.2.9
我究竟做错了什么?我怎么弄清楚什么是错的?
Ber*_*tel 22
要连接到mongodb使用mongoose,你可以使用:
mongoose.connect('mongodb://localhost/users_test');
Run Code Online (Sandbox Code Playgroud)
要么
mongoose.connect('localhost/users_test');
Run Code Online (Sandbox Code Playgroud)
要么
mongoose.connect('localhost','users_test');
Run Code Online (Sandbox Code Playgroud)
但不是mongoose.connect('mongodb:localhost/users_test');,它与正确的主机名不匹配(mongodb而不是localhost)
我遇到了这个问题serval次,这里有一些 troubleshooting list
database path是exist,Windows中的默认路径C:\data\dbmongo is running运行它去C:\Program Files\MongoDB\Server\3.4\bin运行以下内容:
mongod.exemongo.execonnection string is correct喜欢mongdb://localhost/database-name小智 6
如果是集群 MongoDB 那么您需要将您当前的 IP 添加到集群中,要添加您当前的 IP 地址,您需要完成以下几个步骤-
step 1- go to login page of Mongodb and login with valid credential - https://cloud.mongodb.com/user#/atlas/login
step 2- CLick Network Access from left sidebar under Security Section
Step 3 - Click Add IP Address
Step 4 - Click Add Current IP Address or Allow Connection From Any Where
now try to connect - npm start
Run Code Online (Sandbox Code Playgroud)
对于本地 MongoDB 使用 mongo 字符串,如“mongodb+srv://username:pass%40ord@castername-blqnk.mongodb.net/test?retryWrites=true&w=majority”
密码必须像示例字符串一样编码
| 归档时间: |
|
| 查看次数: |
80733 次 |
| 最近记录: |