客串一下后端哈
缘起
想使用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
网友评论