Bmob使用node sdk作为后端

作者: 黄秀杰 | 来源:发表于2017-10-23 21:00 被阅读248次

    客串一下后端哈

    缘起

    想使用node.js全栈开发,在想在php与js之间来回切换语法,找了很久才发现一个node sdk for Bmob。

    安装

    npm install bmob request
    

    查询数据

    var BC = require('bmob');
    BC.initialize("9a22a7cb3217e88cac2e81fe7e88c600", "025c1282712e387a62b2bcd5a970f93c");
    var db = new BC.Db;
    db.find({ 'table': 'Food' }, function(err, obj) {
        console.log('obj', obj);
    });
    

    更多的写法可以查看bmob/db.js源码及其注释

        /**
         * @todo method for find,access db.
         * @param options
         * @memo options include:
         * {
         * 'table':XXX,             #表名
         * 'keys':'a,b,c',          #返回字段列表,多个字段用,分隔
         * 'where':'{a:10}',        #查询条件是一个object
         * 'order':'-a,b',          #排序列表,[-]字段名称,-表示降序,默认为升序
         * 'limit':10,              #limit大小,一页返回多少条记录,默认为0
         * 'skip':2,                #skip,分页offset,(page-1)*limit
         * 'count':1                #count,只返回符合条件的记录总数,不返回记录。
         * }
         * @param fn 回调函数
         * fn(err,data)
         */
    

    可以对比js sdk的语法对照着写,比如

    var query = new Bmob.Query('Food');
    query.equalTo('isRecommend', true);
    query.ascending('priority');
    query.limit(10);
    query.skip(0);
    query.find().then(function(res){
      console.log(res);
    });
    

    控制台打印

    集成express

    npm install express
    

    安装express后,给一个/bmob的路由,然后启动3001端口

    var express = require('express');
    var app = express();
    app.get('/bmob', function(req, res) {
        var BC = require('bmob');
        BC.initialize("9a22a7cb3217e88cac2e81fe7e88c600", "025c1282712e387a62b2bcd5a970f93c");
        var db = new BC.Db();
        db.find({ 'table': 'Food' }, function(err, obj) {
            res.send(obj);
        });
    });
    app.listen(3001);
    
    浏览器预览

    更多

    可以使用模板引擎ejs/jade,让它跑在web端,也可以做成api结合使用vue + element.js单页面。这里只做抛砖引玉,暂不深究。

    结语

    上面的node sdk api写法,不如小程序中js sdk那样优雅,但比起直接使用request.js+restful api 还是要顺眼一点的。有能力的话,可以给个语法糖,封装得跟js sdk那么易用。

    praise mp

    相关文章

      网友评论

      • 55eb071e096f:微信小程序怎么获取网络服务器时间,bmob数据服务SDK有获取服务器时间的借口但是微信小程序的SDK好像没有
      • 447fb7d34e84:图片都看不到啊,开发这么一个小程序价格在多少?
      • 爱哭的笨小孩:亲 我想问问怎么在 Reactnative 中使用
        黄秀杰:@爱哭的笨小孩 据官方说,走万能的restful接口api

      本文标题:Bmob使用node sdk作为后端

      本文链接:https://www.haomeiwen.com/subject/nxczuxtx.html