用Node.js来开发后台服务

今天介绍怎么样用JSONStore开发一个云端的后台服务,并快速的与客户端对接。


1.创建应用

首先去JSONStore注册用户,并创建一个APP,



2.建立表结构

建立catalog和product两张表,分别代表分类表和产品表。如下:





3.添加数据

到数据页面分别给两张表增加几条数据



catalog表:

product表



4.建立API

到API页面编写API。

4.1 查询所有产品并关联分类

新建一个/products 的API,参数如下:

  • 路径:/products
  • 名称:所有产品
  • 方法:GET
  • 跨域:开启


4.2 查询所有分类

新建一个/catalogs 的API,参数如下:

  • 路径:/catalogs
  • 名称:所有分类
  • 方法:GET
  • 跨域:开启



4.3 增加分类

到数据页面给分类表生成RESTAPI,如下:



5.编写代码

  • /products 查询所有产品
var conn = modules.conn;
var logger = modules.logger;


conn('product')
.select(["product.name", "product.price", "product.count", "catalog.name as catalog"])
.leftJoin('catalog', 'catalog.id', 'product.catalog')
.then(function(data){
  res.send(data);
})
.catch(function (err) {
  logger.error(err.stack);
  res.status(500).send(err.message);
})
  • /catalogs 查询所有分类
var conn = modules.conn;
var logger = modules.logger;

conn('catalog')
.select()
.then(function(data){
  res.send(data);
})
.catch(function (err) {
  logger.error(err.stack);
  res.status(500).send(err.message);
})
	
  • /catalog 增加分类

由系统生成,无需编写。



5.测试

到各个API的测试页面,对API进行测试,如下:



6.客户端调用

客户端调用时,用各个语言的HTTP客户端调用返回JSON数据即可。这里以Javascript为例。

注意:如果在HTML页面中用AJAX调用需要到设置页面中开启跨域。

参考 https://docs.jsonstore.cn/reference/invoke.html


6.1 获取AppKey 和 Secret

进入到设置页面得到AppKey 和 Secret。


6.2 在页面用AJAX调用

//获取指定位数的随机字符串(包含小写字母、大写字母、数字,0<length)
function randomString(length) {
    //随机字符串的随机字符库
    var KeyString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    var sb = "";
    var len = KeyString.length;
    for (var i = 0; i < length; i++) {
       sb += KeyString.charAt(Math.round(Math.random() * (len - 1)));
    }
    return sb;
}
var appKey = "Pv6fH4AC3yCTrVye5lElMIJj0rEl0K";
var secret = "dUG6TRvo4p2Pq2Yv5bdSXuxMh6W1uW";
var nonce = randomString(10);
var curTime = new Date().getTime();
var checkSum = hex_sha1(secret + nonce + curTime);   //SHA1算法加密

$.ajax({
	type: "GET",
	url: "https://api.jsonstore.cn/api/aaaa/products",  //API调用地址
	headers : {
		"Content-Type" : "application/json",
		"App-Key" : appKey,
		"Nonce" : nonce,
		"Cur-Time" : curTime,
		"Check-Sum" : checkSum,
	},
	success : function(data){
		console.log(data);
	},
	error : function (err){
		console.log(err)
	}
})

6.3 运行

可以看到控制台已打印出产品的数据。





  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值