当方プログラミング初学者で、node.jsとMongoDBの学習を教材を使って進めているのですが、MongoDBの接続・データ挿入部分でエラーが発生し、Googleで調べても自力では解決出来なかったため有識者の皆様からご教示いただきたくご質問させていただいた次第でございます。
初学者故の初歩的なミスがあるかもしれませんがご容赦ください。
エラーメッセージ
PS D:\nodejs\weblog> node ./lib/database/insert-sample.js connect successfully D:\nodejs\weblog\node_modules\mongodb\lib\utils.js:668 throw error; ^ TypeError: Cannot read property 'db' of undefined at D:\nodejs\weblog\lib\database\insert-sample.js:65:19 at D:\nodejs\weblog\node_modules\mongodb\lib\utils.js:665:9 at D:\nodejs\weblog\node_modules\mongodb\lib\mongo_client.js:224:23 at connectCallback (D:\nodejs\weblog\node_modules\mongodb\lib\operations\connect.js:366:5) at D:\nodejs\weblog\node_modules\mongodb\lib\operations\connect.js:599:14 at connectHandler (D:\nodejs\weblog\node_modules\mongodb\lib\core\sdam\topology.js:285:11) at cb (D:\nodejs\weblog\node_modules\mongodb\lib\core\sdam\topology.js:683:18) at D:\nodejs\weblog\node_modules\mongodb\lib\cmap\connection_pool.js:354:13 at D:\nodejs\weblog\node_modules\mongodb\lib\core\sdam\server.js:282:16 at Object.callback (D:\nodejs\weblog\node_modules\mongodb\lib\cmap\connection_pool.js:351:7)
insert-sample.js
insert
1var CONNECTION_URL = require("../../config/mongodb.config.js").CONNECTION_URL; 2var DATABASE = require("../../config/mongodb.config.js").BATABASE; 3var OPTIONS = require("../../config/mongodb.config.js").OPTIONS; 4var MongoClient = require("mongodb").MongoClient; 5 6// posts, users, privileges 7var insertPosts = function (db) { 8 return Promise.all([ 9 db.collection("posts").insertMany([{ 10 url: "/2017/05/hello-nodejs.html", 11 published: new Date(2017, 4, 2), 12 updated: new Date(2017, 4, 2), 13 title: "ようこそ Node.js の世界へ", 14 content: "Node.js は おもしろい!", 15 keywords: ["Node.js"], 16 authors: ["Yuta Sato"] 17 }, { 18 url: "/2017/06/nodejs-basic.html", 19 published: new Date(2017, 5, 12), 20 updated: new Date(2017, 5, 12), 21 title: "Node.js の 基本", 22 content: "ちょっと難しくなってきた!?", 23 keywords: ["Node.js"], 24 authors: ["Yuta Sato"] 25 }, { 26 url: "/2017/07/advanced-nodejs.html", 27 published: new Date(2017, 7, 8), 28 updated: new Date(2017, 7, 8), 29 title: "Node.js 応用", 30 content: "Node.js で Excel ファイルが触れるなんて!!", 31 keywords: ["Node.js"], 32 authors: ["Yuta Sato"] 33 }]), 34 db.collection("posts") 35 .createIndex({ url: 1 }, { unique: true, background: true }) 36 ]); 37}; 38 39var insertUsers = function (db) { 40 return Promise.all([ 41 db.collection("users").insertOne({ 42 email: "yuta.sato@sample.com", 43 name: "Yuta Sato", 44 password: "qwerty", //"qwerty", // "77d1fb804f4e1e6059377122046c95de5e567cb9fd374639cb96e7f5cc07dba1" 45 role: "owner" 46 }), 47 db.collection("users") 48 .createIndex({ email: 1 }, { unique: true, background: true }) 49 ]); 50}; 51 52var insertPrivileges = function (db) { 53 return Promise.all([ 54 db.collection("privileges").insertMany([ 55 { role: "default", permissions: ["read"] }, 56 { role: "owner", permissions: ["readWrite"] } 57 ]), 58 db.collection("privileges") 59 .createIndex({ role: 1 }, { unique: true, background: true }) 60 ]); 61}; 62 63MongoClient.connect(CONNECTION_URL, OPTIONS, (error, client) => { 64 console.log("connect successfully") 65 var db = client.db(DATABASE); 66 Promise.all([ 67 insertPosts(db), 68 insertUsers(db), 69 insertPrivileges(db) 70 ]).catch((error) => { 71 console.log(error); 72 }).then(() => { 73 client.close(); 74 }); 75});
mongodb.config.js
mongodb.config.js
1module.exports = { 2 CONNECTION_URL: "mongodb://user:user@localhost:27017/weblog", 3 DATABASE: "weblog", 4 OPTIONS: { 5 family: 4, 6 useUnifiedTopology: true, 7 useNewUrlParser: true 8 } 9 };
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/02 15:20