您的位置:首页 > Web前端 > Node.js

用Node.js来开发后台服务

2017-06-19 10:38 519 查看
今天介绍怎么样用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 运行

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息