node 帶mongodb


let http = require('http');

// 引入url模塊 獲取域名後面的url
let path = require('path');
let fs = require('fs');
let url = require('url');
let ejs = require('ejs');
let querystring = require('querystring');

let routes = require('./js/routes');

const MongoClient = require('mongodb').MongoClient;

// Connection URL
const mongodbUrl = 'mongodb://localhost:27017';

// Database Name
const dbName = 'test';

// 創建http服務
// request 獲取客戶端傳過來的信息,response 給瀏覽器響應的信息
http.createServer((request, response) => {
let queryUrl = url.parse(request.url).pathname === '/' ? 'index' : url.parse(request.url).pathname.replace('/', '');
let pageData;

routes.static(request, response);


try {
routes.route[queryUrl](request, response, pageData);
} catch (e) {
routes.route['error'](request, response, pageData);
}

// 獲取get請求數據
let getData = url.parse(request.url, true);
// console.log(getData['query']);
// 路由
if(queryUrl === 'doPost') {
//獲取 POST 傳值
let postData = '';
// 數據塊接收中
request.on('data', function (postDataChunk) {
postData += postDataChunk;
});

// 數據接收完畢,執行回調函數
request.on('end', function () {
try {
postData = JSON.parse(postData);
} catch (e) {
}
request.query = querystring.parse(postData);
console.log(request.query);
// Use connect method to connect to the server
MongoClient.connect(mongodbUrl,{ useUnifiedTopology: true }, function(err, client) {
// assert.equal(null, err);
if (err) { console.log(err); return}
console.log('數據庫連接成功');

const db = client.db(dbName);

const collection = db.collection('admin');

// 添加數據
collection.insertMany([
{'name': request.query['username'], 'age': request.query['password']},
], function(err, result) {
if (err) { console.log(err); return}
// assert.equal(err, null);
// assert.equal(3, result.result.n);
// assert.equal(3, result.ops.length);
client.close();
console.log('添加成功');
});

// 刪除數據
// collection.deleteOne({ 'name' : 'qqq' }, function(err, result) {
// if (err) { console.log(err); return}
// // assert.equal(err, null);
// // assert.equal(1, result.result.n);
// // client.close();
// console.log('刪除成功');
// });

// 修改更新數據
// collection.updateOne(
// { 'name' : 'www' },
// { $set: { 'name' : '111' } },
// (err, result) => {
// if (err) { console.log(err); return}
// // assert.equal(err, null);
// // assert.equal(1, result.result.n);
// console.log('更新成功');
// client.close();
// });

// 查看數據
collection.find({}).toArray(function(err, docs) {
if (err) { console.log(err); return}
// assert.equal(err, null);
response.end(docs);
pageData = docs;
console.log(docs);
client.close();
});
});

});
}





try {
routes.route[queryUrl](request, response, pageData);
} catch (e) {
routes.route['error'](request, response, pageData);
}
}).listen(3000);



console.log('httpServer http://127.0.0.1:3000');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章