Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Mongodb错误:无法连接到[localhost:27017]大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下代码

var express = require('express'),mongoose = require('mongoose');


var db = mongoose.connect('mongodb://localhost/bookAPI');

var Book = require('./models/bookmodel');

var app = express();

var port = process.env.PORT || 3002;


var bookRouter = express.Router();

bookRouter.route('/Books')
    .get(function(req,res){

        Book.find(function(err,books){
            if(err)
                console.log(err);
            else
                res.json(books);
        });
    });


app.use('/api',bookRouter);



app.get('/',function(req,res){
    res.send('welcome to my API!');
});

app.listen(port,function(){
    console.log('Gulp is running my app on  PORT: ' + port);
});

Bookmodel.js文件

var mongoose = require('mongoose'),scheR_186_11845@a = mongoose.scheR_186_11845@a;

var bookmodel = new scheR_186_11845@a({
    title: {
        type: String
    },author: {type: String},genre: {type: String},read: {type: Boolean,default:falsE}
});

module.exports= mongoose.model('Book',bookmodel);

我的gulpfile是:

var gulp = require('gulp'),nodemon = require('gulp-nodemon');


gulp.task('default',function(){
    nodemon({
        script: 'app.js',ext: 'js',env: {
            PORT:8000
        },ignore: ['./node_modules/**']
    })
    .on('restart',function(){
        console.log('RestarTing');
    });
});

但是我一直收到错误

Gulp is running my app on  PORT: 8000
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: Failed to connect to [localhost:27017]
  at null.<anonymous> (/Users/admin/Documents/NodeAndExpress/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:549:74)

这非常令人沮丧,因为我非常密切地关注了Pluralsight课程.我已经安装了所有必要的npm软件包等.当我删除连接线时,它肯定是导致错误的mongoose连接.数据库尚未创建,但教师提到它应该自动创建(如果它尚不存在).

我尝试用mongod手动启动mongoose连接,但是我收到错误

ERROR: dbpath (/data/db) does not exist.
 Create this directory or give exisTing directory in --dbpath.

解决方法

这里有一些活动部分:

> Mongoose,为MongoDB提供对象建模;
> MongoDB本身,它是存储使用Mongoose创建的文档的数据库(-server).

在安装方面,两者都是独立的:当你安装Mongoose时,你不会自动安装MongoDB(反之亦然).此外,当您运行使用Mongoose的Node.js脚本时,它不会自动启动MongoDB,这是需要单独完成的事情.

在您的情况下,MongoDB没有运行,因此Mongoose无法连接到它. Mongoose可以做的就是抱怨(“未能连接到……”).

要启动MongoDB,可以使用mongod命令行程序.您通常需要为它提供一个可以存储其数据库的目录;在我的系统(Mac OS X)上,该目录是/ var / db / mongodb,但这不一定是最佳位置(它取决于您正在运行的操作系统).

作为快速修复,您可以提供一个临时目录作为数据库目录

$mkdir /tmp/data
$mongod --dbpath /tmp/data

这对于现实生活来说并不理想,因为/ tmp通常在系统启动期间被清空,因此您的数据库也将在此时被删除.但是,出于测试目的,没关系.只要您知道重启后数据库将再次为空.

在某些时候,您希望系统在系统启动时自动启动MongoDB,但是,它取决于您的操作系统,您需要如何配置它.

大佬总结

以上是大佬教程为你收集整理的node.js – Mongodb错误:无法连接到[localhost:27017]全部内容,希望文章能够帮你解决node.js – Mongodb错误:无法连接到[localhost:27017]所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。