1. 调研经验
在本次项目中,我负责了调研工作,其中用到了“问卷星”这一平台。 在这个平台上可以比较轻松地设计和发布问卷,并查看统计结果。
比较需要花心思的是问题的设置,在设置某两道题的选项时,花费了较多心思。
最后,分析调查结果,写成文档,发布到项目的github上 github 调研报告
2. 后台开发学习
2.1 nodejs express使用https
微信小程序的访问要求必须是Https协议,所以我们可以使用nodejs的express框架 参考 nodejs express使用https 主要过程是设置认证,监听SSL端口,并设置路由响应
代码语言:javascript复制var app = require('express')();
var fs = require('fs');
var http = require('http');
var https = require('https');
// https设置认证
var privateKey = fs.readFileSync('/path/to/private.pem', 'utf8'),
var certificate = fs.readFileSync('/path/to/file.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app); // https启动服务器
var PORT = 18080;
var SSLPORT = 18081;
httpServer.listen(PORT, function() {
console.log('HTTP Server is running on: http://localhost:%s', PORT);
});
httpsServer.listen(SSLPORT, function() { // https监听端口
console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT);
});
// Welcome
app.get('/', function(req, res) {
if(req.protocol === 'https') {
res.status(200).send('Welcome to Safety Land!');
}
else {
res.status(200).send('Welcome!');
}
});
2.2 Restful的理解,Restful 优缺点
参考 Restful的理解,Restful 优缺点
我们知道restful是面向资源的,但并不是任何场景都适合用restful的思想。 比如
- 批量删除数据,
DELETE /tickets/12
就不合适了 - 当查询操作的参数过长时,
GET
也不合适,比如查询1000个订单的信息,GET /tickets
就得传一个长度为1000的数组 - 对同一个事物的不同属性进行更新,就不适合全部用
PUT ticket/12
一个域名来一概而论。(虽然也能传递参数,但还是略显麻烦)
所以
- 简单查询尽量用GET,复杂查询和更新用POST,用的最多;
- 不用PUT和DELETE,避免增加复杂度。 看看BAT的很多openapi,也是表面上用着restful,实际没有严格遵守,还是以get和post为主。
详细做法如下:
代码语言:javascript复制//根据订单id获取订单
GET oms/order/queryOrderById?id=value1¶m2=value2
//根据订单id List获取订单
POST oms/order/queryOrderByIdList
//根据条件查询订单,带分页参数
POST oms/order/queryOrderByCondition
//更新订单收款状态
POST oms/order/updateOrderCollectionStatus
//批量更新订单收款状态
POST oms/order/updateOrderCollectionStatusInBatch
//批量更新订单收款状态
POST oms/order/updateOrderCollectionStatusInBatch
//批量删除订单,带操作来源
POST oms/order/deleteOrderInBatch