cloudant 免费版初体验

这里使用的是IBM提供的免费版,1G大小,放在远端的云上。它非常适合用于个人学习,测试和轻度开发。

先去官网,右上角注册个账号,百度搜索IBM cloudant,第一个就是,用普通的邮件163,qq都行:

注册好后登录:

创建资源,搜索cloudant:

点进去后就是选择的配置了,能选的不多,地点我选了比较近的东京,实例名自起,plan就选free版:

选完后Create就行,完成后能看到实例:

 点击它就进入到这个实例的管理详情页:

点击Launch Dashboard,即可进入到cloudant的网页管理页面(以后会经常进到这个页面):

创建一个库试试,选择不分:

 

创建一个doc试试,其中可以search by ID:

选择TableView,即可看到上述效果,怎么样,这款云文档库还是不错的,下面来试试使用nodejs连接ta:

1.会到资源列表页,新建凭证:

按照默认的来就行,就指定一下名称,建好后copy下凭证信息:

2. 新建一个nodejs项目,新建一个空目录,命令行进到该目录下,运行 npm init -y,

   初始化好后安装@cloudant/cloudant依赖,运行 npm i -S @cloudant/cloudant

   运行code .命令用vscode打开该项目,根目录新建一个index.js,一个cre.json文件,将刚才copy的凭证拷贝到里面去

一个config目录,里面创建一个vcap-local.json的文件,复制如下内容:

{
    "services": {
        "cloudantNoSQLDB": {
            "credentials":
            PASTE CREDENTIAL INFO HERE
            ,
            "label": "cloudantNoSQLDB"
        }
    }
}

项目结构:

3. 将cre.json的json替换掉这里的"PASTE CREDENTIAL INFO HERE", 类似这样:

{
    "services": {
        "cloudantNoSQLDB": {
            "credentials": {
                "apikey": "Nxxxxxxxxxx",
                "host": "xxxxxxxxxxxxx-bluemix.cloudantnosqldb.appdomain.cloud",
                "iam_apikey_description": "Auto-generated for key 2xxxxxxxxxxxx",
                "iam_apikey_name": "main",
                "iam_role_crn": "crn:v1:bluemix:xxxxxxxxxxxxxxxxx",
                "iam_serviceid_crn": "crn:v1:bluemix:public:iam-identity::xxxxxxxxxxxxxxxx::serviceid:ServiceId-xxxxxx-xxxxxxx",
                "url": "https://xxxxx-xxxx-xxx-xxx-xxxxxxx-bluemix.cloudantnosqldb.appdomain.cloud",
                "username": "xxxxx-xxxxxx-xxxxx-bluemix"
            },
            "label": "cloudantNoSQLDB"
        }
    }
}

4. index编码如下,如果你也是用的名为main的库:

const Cloudant = require('@cloudant/cloudant');

const vcap = require('./config/vcap-local.json');

function dbCloudantConnect() {
    return new Promise((resolve, reject) => {
        Cloudant({ 
            url: vcap.services.cloudantNoSQLDB.credentials.url
        }, ((err, cloudant) => {
            if (err) {
                console.error('Connect failure: ' + err.message);
                reject(err);
            } else {
                const db = cloudant.use("main");
                console.log('Connect success!');
                resolve(db);
            }
        }));
    });
}

dbCloudantConnect();

运行node index.js命令,输出"Connect sucess!"即表示连接成功。

简单byId查询一下刚才的张三记录,需要知道张三的ID:

稍微修改下index.js代码(替换你自己的id):

const Cloudant = require('@cloudant/cloudant');

const vcap = require('./config/vcap-local.json');

function dbCloudantConnect() {
    return new Promise((resolve, reject) => {
        Cloudant({ 
            url: vcap.services.cloudantNoSQLDB.credentials.url
        }, ((err, cloudant) => {
            if (err) {
                console.error('Connect failure: ' + err.message);
                reject(err);
            } else {
                const db = cloudant.use("main");
                db.get('YOUR_ID', (err, result) => {
                    if (err) {
                        console.log(`err: ${err}`);
                    } else {
                        console.log(JSON.stringify(JSON.stringify(result)));
                    }
                })
                resolve(db);
            }
        }));
    });
}

dbCloudantConnect();

结果发现没有读访问权限:

后来没有办法,把资源删除重新创建,改成带legacy的

然后生成的服务凭证也不一样了,带password,可以通过account/password的方式登录,相应替换后,成功拿到了这条数据:

参考&拓展:

Use Node.js with Cloudant DBaaS

EXAMPLE CRUD

CLOUDANT NPM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值