【닷 설치】Node.js 강좌의 사양 변경점 【 #15 문서를 삽입해 보자】
소개
도트 인스톨의 Node.js 강좌는 최종 갱신일이 2014년 그대로 아카이브 되고 있어, 강좌 내용 그대로 해 잘 되지 않는 개소가 있다.
"» #15 문서 삽입하기"
장에서는 Node.js의 MongoClient 사양이 바뀌었기 때문에 오류가 발생했습니다. 새로운 사양에 대응한 올바른 방법을 메모해 둔다.
mongoDB의 공식 문서에서는, 버전 3 이후, MongoClient.connect에 리턴하는 값이 DB로부터 Client로 바뀌었다고 쓰여지고 있다.
What’s new in 3.0
· MongoClient.connect now returns a Client instead of a DB. "
mongoDB에 할당된 주소 알아보기
MongoClient.connect를 기술할 때, 제1 인수에, mongoDB에 할당할 수 있는 주소를 기술할 필요가 있다.
기본적으로 mongoDB에 할당된 주소를 알기 위해 터미널에서 "mongo"명령을 입력하여 mongoDB가 어떤 주소에 연결되어 있는지 알아보십시오.
강좌가 남아 있으면 오류가 발생하는 곳
도트 설치 강좌의 코드 그대로 실행하면 터미널에 "node mongo.js"를 입력하면 다음 오류가 반환됩니다.
TypeError: db.collection is not a function
원인은 MongoDB 3.0 이후 MongoClient.connect에 리턴하는 값이 DB에서 Client로 바뀐 것.
<도트 설치 코드의 문제점>
MongoClient.connect("mongodb://"+settings.host+"/"+settings.db, function(err, db) { //dbはリターンされないので引数に取れない
if (err) { return console.dir(err); }
console.log("connected to db");
db.collection("users", function(err, collection) {
//dbはリターンされてないので存在しない
var MongoClient = require('mongodb').MongoClient
//データベースに接続する関数に渡す第一引数である、mongoDBのアドレスは、定数に格納する方がスッキリする
const url = 'mongodb://localhost:127.0.0.1:27017/myDB'
// callbackに渡されるオブジェクトが(err, db)から(err, client)に変わった
MongoClient.connect(url, (err, client)=> {
// db名を指定してdbオブジェクトを取得する必要がある
const db = client.db('localhost:127.0.0.1:27017')
if (err) { return console.dir(err); }
console.log("connected to db");
db.collection("users", function(err, collection) {
var docs = [
{name: "taguchi", score: 40},
{name: "fkoji", score: 80},
{name: "dotinstall", score: 60}
];
collection.insert(docs, function(err, result) {
console.dir(result);
});
});
});
데이터베이스 확인 방법
①터미널에서 확인
터미널에 node mongo.js를 입력하면 삽입된 문서의 값이 표시됩니다.
②mongoDB에서 확인
터미널에 mongo를 입력하여 mongoDB 시작
> show dbs;
localhost:27017 0.000GB
이 데이터베이스에 삽입한 문서가 들어 있습니다.
>show collections;
사용자
만든 사용자 컬렉션이 표시됩니다.
>db.users.find();
insert한 docs의 값이 mongoDB에 삽입되어 있는 것을 확인할 수 있다.
참고문헌
Node.js의 MongoClient 사양이 변경되었습니다.
htps : // 이 m/미미 zq/있어 ms/76d3아 948아cb33881c8db
Node.js에서 MongoDB에 연결해보십시오.
htps : // 코 m / 오네 케 lゔ ぃ / / ms / c0c036f774f0b3b98 Ae 5
Reference
이 문제에 관하여(【닷 설치】Node.js 강좌의 사양 변경점 【 #15 문서를 삽입해 보자】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Molly95554907/items/ced80b066f94f1b46c87텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)