node 无法使用 mongodb

catchonme
  • 133

问题描述

Mac 下安装 mongodb 成功,打开 localhost:27017 后显示It looks like you are trying to access MongoDB over HTTP on the native driver port.
命令中使用 mongo 能够进入数据库,使用 show dbs 能够显示admin/config/local 数据库

node 代码中连接 mongodb

let MongoClient = require('mongodb').MongoClient;
let url = "mongodb://localhost:27017/test";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    console.log('数据库已创建');
    db.close()
})

总是出错

MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: getaddrinfo ENOTFOUND localhost localhost:27017]

查了下,说是mongo 没有启动,但是我在命令行中是已经启动了
启动命令

mongodb --dbpath 自定义的目录
mongo // 可以使用 show dbs 命令
回复
阅读 1.4k
5 个回答

改成127.0.0.1或检查下你的hosts文件

nodejs 可以用mongoose这个;

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

很久没写nodejs了,你这个可能是版本问题,就是可能你用的库的版本和你的写法不对应

可以试试用mongoose来连接

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/test');
const conn = mongoose.connection;
conn.on('connected', () => {
    console.log('连接成功');
})

localhost 改成 127.0.0.1,试试看,然后参考下这篇文章,传送门

你知道吗?

宣传栏