0
私にはCRUD system
があります。これは私のcreate.js
ファイルです。 db connection
を他のファイルで使用できるようにするには、各ファイル内の同じコードを書き換える必要はありません。複数のファイルにMondoDBをどのように接続するのですか
mongo = require('mongodb').MongoClient
global.db = null
sDatabasePath = 'mongodb://localhost:27017/kea'
global.mongoId = require('mongodb').ObjectID
/**************************************************/
mongo.connect(sDatabasePath, (err, db) => {
if (err) {
console.log('ERROR 003 -> Cannot connect to the database')
return false
}
global.db = db
console.log('OK 002 -> Connected to the database')
var jStudent =
{
"firstName": "Sarah",
"lastName": "Jepsen",
"age": 27,
"courses": [
{
"courseName": "Web-development",
"teachers": [
{
"firstName": "Santiago",
"lastName": "Donoso"
}
]
},
{
"courseName": "Databases",
"teachers": [
{
"firstName": "Dany",
"lastName": "Kallas"
},
{
"firstName": "Rune",
"lastName": "Lyng"
}
]
},
{
"courseName": "Interface-Design",
"teachers": [
{
"firstName": "Roxana",
"lastName": "Stolniceanu"
}
]
}
]
}
global.db.collection('students').insertOne(jStudent, (err, result) => {
if (err) {
var jError = { "status": "error", "message": "ERROR -> create.js -> 001" }
console.log(jError)
}
var jOk = { "status": "ok", "message": "create.js -> saved -> 000" }
console.log(jOk)
console.log(JSON.stringify(result))
})
})
原因これは自分自身では機能しません。それは言う:Cannot read property 'collection' of undefined
、しかし私は再びサムコードを繰り返すしたくないです。 solution
とは何ですか?
global.db.collection('students').find({}, { "courses.courseName": true, _id: false }).toArray((err, result) => {
if (err) {
var jError = { "status": "error", "message": "ERROR -> student.js -> 001" }
console.log(jError)
}
var jOk = { "status": "ok", "message": "student.js -> all courses found -> 000" }
console.log(jOk)
console.log(JSON.stringify(result))
})
グローバルには何が行われていますか? –
私は変数をグローバルにしようとしましたが、それはそのようには機能しませんでした。 – codeDragon