(二)mongDB数据库连接和插入

本文详细介绍了如何清理MongoDB数据库、启动数据库服务、使用JS代码连接数据库及插入数据,包括步骤说明、代码示例及运行测试方法。

一、清理已有数据库(该步骤可忽视)

在终端输入

sudo lsof -i

 看是否已有mongod存在,杀死这个PID,如图我的对应PID是875

sudo kill 875

二、打开数据库

在终端控制台输入如下语句,出现一些warning没有关系,出现一些collections accept字样就说明数据库连接成功了(终端不要关闭)

mongod --dbpath Path(自己的路径)

三、JS数据库连接代码

数据库连接和一些数据库操作的代码可以直接参考mongo DB官网的教程,链接如下:

http://mongodb.github.io/node-mongodb-native/3.1/quick-start/quick-start/

创建mongoTest.js文件,其中这次实验主要用到的是两个,一个连接数据库,一个插入数据

这里要自己调整一下,在连接里db变量创建之后,close()语句之前调用一下插入函数,也就是改变一下这里。

    client.connect(function(err) {
        assert.equal(null, err);
        console.log("Connected successfully to server");
        const db = client.db(dbName);
        insertDocuments(db,function() {
            client.close();
        });
    });

四、将连接写成函数,暴露

将连接的代码写为一个函数,传入的参数是数据。并且暴露这个函数,这样在之后的操作中,我们可以调用参数来让各个用户独立使用数据库

五、利用表单插入数据

结合(一)

利用表单输入数据,插入数据库,在开头require()我们的mongDB.js文件,就可以调用“连接+插入数据库”的操作

六、运行

运行httpserver.js,在表单里输入数据并提交,然后查看数据库里有没有成功插入

查看数据库操作:

1.在终端输入mongo,如果在第一步数据库成功启动的话是会显示一大串数据的

2.查看一些相关信息,其中myproject是我们创建的数据库,documents是我们进行操作的数据集

3.查看我们的数据有没有被插入,前面是自己随便测试的。最后一行可以看见我们在表单提交的数据被成功插入了

db.documents.find({})

七、代码

(1)mongoTest.js

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

//连接数据库
const connetdb=function(data){
    const url = 'mongodb://localhost:27017';
    const dbName = 'myproject';
    const client = new MongoClient(url);
    client.connect(function(err) {
        assert.equal(null, err);
        console.log("Connected successfully to server");
        const db = client.db(dbName);
        insertDocuments(db,function() {
            client.close();
        });
    });
};

//插入数据
const insertDocuments = function(db, data,callback) {
    const collection = db.collection('documents');
    collection.insertMany([
        data
    ], function(err, result) {
        assert.equal(err, null);
        //assert.equal(1, result.result.n);   //用于检查数据长度是否匹配
        //assert.equal(1, result.ops.length);   //用于检查操作次数是否匹配
        console.log("Inserted 1 documents into the collection");
        callback(result);
    });
};

exports.condb=connetdb;   //暴露

(2)httpsever.js参考(一),没有大的变动,只多了两个语句

在开头加入

let condb=require('./mongoTest');

在res.end()前加入

condb.condb(urlQuery);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值