node 无法使用 mongodb

问题描述

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 命令
阅读 4.7k
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,试试看,然后参考下这篇文章,传送门

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题