在vscode里,创建一个server端项目。
发现刷新页面后,修改了ctx.body的值,但是在前端还是没刷新时的值。需结束 app.js后重启才行。这个应该可以配置webpack解决。
但是在.then里面的ctx.body赋值无效。那是因为sql查询时异步执行的。而get已经访问了。
要等sql执行结束,get才返回,需要在sql前面加await
不用写.then .catch了,直接用async/await 这是es7里的。捕获异常可以用try catch
值得注意的是,
await
必须在
async函数的上下文中
的。
具体的可以百度async/await
如果服务器端要和钉钉jsapi通信,可以用https.get 这个是nodejs自带
https://nodejs.org/api/https.html#https_https_get_options_callback
这里用到了.on 不知道是什么写法
.then .catch 是es6中的promise。
查了下.on是nodejs里 addlistener的别名,是event的一个方法。
具体查看https://www.cnblogs.com/pingfan1990/p/4661841.html
Node.js中大部分的模块,都继承自Event模块(
http://nodejs.org/docs/latest/api/events.html
)。Event模块(events.EventEmitter)是一个简单的事件监听器模式的实现。具有addListener/on,once,removeListener,removeAllListeners,emit等基本的事件监听模式的方法实现。它与前端DOM树上的事件并不相同,因为它不存在冒泡,逐层捕获等属于DOM的事件行为,也没有preventDefault()、stopPropagation()、 stopImmediatePropagation() 等处理事件传递的方法。
https.get可以用https://github.com/request/request 来代替,
还有配套的https://github.com/request/request-promise
还有一个
axios/axios 默认是json格式,用于钉钉的jsapi很合适。
axios还可以用于客户端代替fetch
还有一个flyio
根据github上的star数,准备采用axios。 不爽的话就用request