Bài viết hướng dẫn bạn có thể tạo một ứng dụng đơn giản với NodeJS và MongoDB. Application này chỉ kết nối và insert một vài dữ liệu vào MongoDB.
nodes
1. Tạo thư mục
# mkdir testapp
# cd testapp/

2. Tạo file package.json
# npm init

3. Lấy dependent module
# npm install mongodb –save

4. Kiểm tra kết quả
# cd node_modules/
# ls -ln
total 4
drwxr-xr-x 4 0 0 145 Jul 18 13:11 bson
drwxr-xr-x 2 0 0 77 Jul 18 13:11 buffer-shims
drwxr-xr-x 3 0 0 103 Jul 18 13:11 core-util-is
drwxr-xr-x 4 0 0 101 Jul 18 13:11 es6-promise
drwxr-xr-x 2 0 0 104 Jul 18 13:11 inherits
drwxr-xr-x 2 0 0 149 Jul 18 13:11 isarray
drwxr-xr-x 3 0 0 262 Jul 18 13:11 mongodb
drwxr-xr-x 3 0 0 251 Jul 18 13:11 mongodb-core
drwxr-xr-x 2 0 0 111 Jul 18 13:11 process-nextick-args
drwxr-xr-x 4 0 0 4096 Jul 18 13:11 readable-stream
drwxr-xr-x 3 0 0 141 Jul 18 13:11 require_optional
drwxr-xr-x 2 0 0 74 Jul 18 13:11 resolve-from
drwxr-xr-x 2 0 0 108 Jul 18 13:11 safe-buffer
drwxr-xr-x 3 0 0 103 Jul 18 13:11 semver
drwxr-xr-x 3 0 0 87 Jul 18 13:11 string_decoder
drwxr-xr-x 2 0 0 109 Jul 18 13:11 util-deprecate

5. Tạo application code

# cd /testapp
#vi app.js
var MongoClient = require('mongodb').MongoClient;

var dbhost = 'mongodb://localhost:27017/test',
myCollection = 'chapter';

var seedData = function(db, callback) {
db.collection(myCollection).find({}, {}, {})
.toArray(
function(err, docs) {
if (docs.length <= 0) {
console.log('No data. Seeding...');

var ihandler = function(err, recs) {
if (err) {
console.log(err);
throw err;
}
inserted++;
}

var toinsert = 2,
inserted = 0;

db.collection(myCollection).insert({
'Title': 'Snow Crash',
'Author': 'Neal Stephenson'
}, ihandler);
db.collection(myCollection).insert({
'Title': 'Neuromancer',
'Author': 'William Gibson'
}, ihandler);

var sync = setInterval(function() {
if (inserted === toinsert) {
clearInterval(sync);
callback(db);
}
}, 50);
return;
}
callback(db);
return;
}
);
}

var showDocs = function(db) {
console.log("Listing books:");
var options = {
sort: [
['Title', 1]
]
};
db.collection(myCollection).find({}, {}, options)
.toArray(
function(err, docs) {
if (err) throw err;

for (var d = 0; d < docs.length; d++) {
console.log(docs[d].Title + '; ' + docs[d].Author);
}

db.close();
}
);
}

MongoClient.connect(dbhost, function(err, db) {
if (err) throw err;

seedData(db, showDocs);
});

6. Kiểm tra lại kết nối đến DB trước khi thực thi code
# mongod

7. Thực thi code:
# node app.js
No data. Seeding...
Listing books:
Neuromancer; William Gibson
Snow Crash; Neal Stephenson

8. Kiểm tra dữ liệu trong mongodb:
# mongo
> use test
switched to db test
> show collections
Chapter
> db.chapter.find().pretty()
{
"_id" : ObjectId("596dae70660a5011998896aa"),
"Title" : "Snow Crash",
"Author" : "Neal Stephenson"
}
{
"_id" : ObjectId("596dae70660a5011998896ab"),
"Title" : "Neuromancer",
"Author" : "William Gibson"
}

Advertisements