Mongodb 未为数据库启用访问控制

Mongodb 未为数据库启用访问控制,mongodb,Mongodb,我正在nodejs+express+mongodb中创建一个示例库应用程序。当我运行gulp-serve命令时,服务器可以完美地启动。当我转到特定的mongodb页面时,它给出的错误insertMany不是一个函数 var express = require('express'); var adminRouter = express.Router(); var mongodb = require('mongodb').MongoClient; var books = [ { t

我正在nodejs+express+mongodb中创建一个示例库应用程序。当我运行gulp-serve命令时,服务器可以完美地启动。当我转到特定的mongodb页面时,它给出的错误insertMany不是一个函数

var express = require('express');
var adminRouter = express.Router();
var mongodb = require('mongodb').MongoClient;
var books = [
   {
      title: 'world',
      genre: 'Lorem Ipsum text changing occured',
      author: 'Rakesh',
      read: false
   },
   {
      title: 'Make of the world',
      genre: 'Digital India towards occured',
      author: 'Jumanji',
      read: false
   }
];

var router = function (nav) {
   adminRouter.route('/addBooks')
      .get(function (req, res) {
         var url = 'mongodb://127.0.0.1:27017/admin';
         mongodb.connect(url, function (err, db) {
            var collections = db.collections('books');
            collections.insertMany(books, 
               function (err, results) {
                  res.send(results);
                  db.close();
               }
            );
         });
      });

   return adminRouter;
};

module.exports = router;

var collections=db.collections('books')行的语法有一个拼写错误。node mongo驱动程序只能解释db.collection()函数,而不能解释db.collections(),这在语法上是错误的


使用
db.collection('books')
而不是
db.collections('books')
,这应该可以修复错误。试试看,让我知道
var collections=db.collections('books')应该是
.collection
。如
var collections=db.collection('books')
并且您确实应该使用
db.collection('books',function(err,collection){
来捕获错误。屏幕截图中的消息来自连接到shell,与问题中的代码无关。这是一个默认的“警告”,提示您“应该”如果您不希望未经授权的用户访问和更改您的数据库,请启用访问控制。图像在帖子中很有用,但请确保没有图像的帖子仍然清晰。与其显示数据格式的屏幕截图,不如直接将实际数据复制粘贴或键入帖子中。cf太好了!如果有效,请务必接受答案这将有助于其他人解决以下问题:P