难以通过猫鼬连接到mongodb

时间:2018-05-20 07:07:46

标签: node.js mongodb mongoose

这就是我通过mongoose连接到mongodb的方式......

mongoose connection

当我运行seeder.js时,我收到以下错误.... 无效的架构,预期的mongodb或mongodb + srv。

error file

这是我的架构......

schema

这就是我播种数据的方式......



//require the schema here
var Product = require('../models/product');

var mongoose = require('mongoose');
mongoose.connect('localhost:27017/shopping');

//create an array to store new data based on imported schema

var products = [
    
    //creating a new product
    new Product({
    imagePath: 'http://2.bp.blogspot.com/-CEuaUzSjQNc/U9aW9n5xngI/AAAAAAAACmc/mh-994sOx08/s1600/The+C+++Programming+Language+4th+Edition+By+Bjarne+Stroustrup+Pdf+Download.jpg',
    title: 'C++ Bjarne Stroustroup',
    description: 'New C++11 Standard Master Class',
    price: 10
  }) ,

new Product({
    imagePath: 'https://images-na.ssl-images-amazon.com/images/I/41CFs9dkaCL.jpg',
    title: 'C++ in a Nutshell',
    description: 'This book introduces standard C++* and the key programming and design techniques supported by C++. Standard C++ is a far more powerful and polished language than the version of C++ introduced by the first edition of this book. ',
    price: 20
  }),

    new Product({
        imagePath: 'https://images-na.ssl-images-amazon.com/images/I/41jXKNG%2BCZL.jpg',
        title: 'C++ Primer Plus',
        description: 'You will cover the latest and most useful language enhancements, the Standard Template Library and ways to streamline object-oriented programming with C++.',
        price: 25
  }),

    new Product({
        imagePath: 'https://images-na.ssl-images-amazon.com/images/I/91Ln8mm52fL.jpg',
        title: 'Thinking in C++: Introduction to Standard C++, Volume One',
        description: '"This book is a tremendous achievement. You owe it to yourself to have a copy on your shelf. The chapter on iostreams is the most comprehensive and understandable treatment of that subject I\'ve seen to date." ― Al Stevens Contributing Editor, Doctor Dobbs Journal',
        price: 30
  }),
  
  new Product({
    imagePath: 'https://images-na.ssl-images-amazon.com/images/I/51j4ugAKqBL.jpg',
    title: 'Effective Modern C++',
    description: 'Coming to grips with C 11 and C 14 is more than a matter of familiarizing yourself with the features they introduce e.g. auto type declarations move semantics lambda expressions and concurrency support . ',
    price: 17
}),

new Product({
    imagePath: 'https://images-na.ssl-images-amazon.com/images/I/31ENaunM9kL.jpg',
    title: 'Modern C++ Design: Generic Programming and Design Patterns Applied',
    description: 'In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and programming virtuosity, Alexandrescu offers a cutting-edge approach to design that unites design patterns, generic programming and C++, enabling programmers to achieve expressive, flexible and highly reusable code.',
    price: 27
})

];


var done =0;
for(var i=0; i<products.length; i++ ) {
    
    //saving the documents to db via mongoose's save function
    products[i].save( (err, result) => {
        done++;
        if(done===products.length) {
            exit();
        }
    });
}

function exit() {

    mongoose.disconnect();
}
&#13;
&#13;
&#13;

当我从mongo shell运行db时,它显示一个空数据库,这意味着播种失败。

1 个答案:

答案 0 :(得分:0)

通过mongoose与mongodb的连接遵循语法

mongoose.connect("mongodb://hostname:/port/dbname");

在给定的问题中,相同的代码是

mongoose.connect("hostname:/port/dbname");

所以只需在connect方法的url字符串的开头添加mongodb。