Mongodb 未为数据库启用访问控制
我正在nodejs+express+mongodb中创建一个示例库应用程序。当我运行gulp-serve命令时,服务器可以完美地启动。当我转到特定的mongodb页面时,它给出的错误insertMany不是一个函数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
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