基于nodejs和mongodb的服务器&数据库访问

要使用nodejs和mongodb,便需要事先下载软件并配置环境。
点击下载mongodb数据库
点击下载nodejs运行环境

可以直接跳过一~四,直接阅读五,若有疑惑,可返回阅读。

一、为什么使用nodejs和mongodb:
nodejs和mongodb与JavaScript的语言风格非常的相似,基本上会使用JavaScript,mongodb和nodejs的用法也会迅速掌握。

二、如何搭建数据库管理系统:
当安装完mongodb后,输入cmd指令打开终端,在bin目录下运行

//打开数据库服务器
mongod --dbpath C:/desktop/database //数据库路径
//连接至数据库管理系统
mongo

这样就在本地搭建了数据库管理系统,数据库位于C:/desktop/database。
连接成功会显示数据库的端口号:
数据库端口号

具体可参考以下文档:
点击跳转学习mongodb

三、js文档中如何连接数据库:

var MongoClient = require("mongodb").MongoClient;
var dataurl = "mongodb://localhost:27017/";
var dbase, userdata;

function makeConnect() {
    MongoClient.connect(dataurl, function(err, db) {
        if (err) throw err;
        console.log("数据库已经创建!");
        //db参数为数据库管理系统
        })
    })
}

exports.makeConnect = makeConnect;

dataurl是数据库的端口号,通过db.db(“user_Data_Name”)方法来调用指定的数据库。

四、如何搭建服务器:
服务器需要在nodejs环境下运行,请事先下载并且安装nodejs运行环境

我们将服务器的构建分成3步:
1、引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
2、创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
3、接收请求与响应请求 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
代码如下:

var http = require("http");
var fs = require("fs");
var url = require("url");

function start(router, handlers, dbbase) {
    http.createServer(function(request, response) {
        //服务器构建完毕
        //此处可解析request,并且调用路由模块分配处理函数
    }).listen(8080);
    console.log("server is open on 8080");
}

exports.start = start;

http、fs、url是nodejs中的固有模块,若无法require,请在指令终端(cmd打开)的C盘根目录下执行npm install http,npm install fs,npm install url操作。

五、如何连接数据库和服务器

通过异步回调机制,先连接数据库,然后再通过回调函数进行构建服务器,并且将对应是数据库对象作为参数传入服务器中。

注意到上文两处代码引用都有出现exports,这意味着该js文件,可以被其他文件进行require,并且exprots中的方法,将可作为模块方法被调用。
我们另写一个index.js文件,作为总纲,在对应的文件夹下运行node index,便可连接数据库。

重写以上代码如下:

//连接数据库的代码,creatData.js文件
var MongoClient = require("mongodb").MongoClient;
var dataurl = "mongodb://localhost:27017/";
var dbase, userdata;

function makeConnect(buildServer) {
    MongoClient.connect(dataurl, function(err, db) {
        if (err) throw err;
        console.log("数据库已经创建!");
        //本人事先创建了studentData数据库,且数据库中有studentNumber集合。
        dbase = db.db("studentData");
        dbase.createCollection("studentNumber", function(err, res) {
            if (err) throw err;
            console.log("studentNumber集合已经创建!");
            //使用回调函数
            buildServer(dbase);
        })
    })
}

exports.makeConnect = makeConnect;
//构建服务器的代码,server.js文件
var http = require("http");
var fs = require("fs");
var url = require("url");

function start(dbbase) {
    http.createServer(function(request, response) {

    }).listen(8080);
    console.log("server is open on 8080");
}

exports.start = start;
//index.js文件
var server = require("./server/server.js");
var createData = require("./datajs/creatData.js");

createData.makeConnect(function buildServer(dbbase) {
    server.start(dbbase);
})

如果读者想赋予服务器更多的功能,可以在server.js中引用自己的路由js文件模块和处理函数js文件模块,这里不做阐述。

猜你喜欢

转载自blog.csdn.net/qq_36470086/article/details/81879453
今日推荐