node.js与微信小程序后台数据库的交互(1)获取accesstoken
微信小程序提供了后台数据库API接口,怎么实现用网页读取和编辑后台数据呢?之前看的vue-element-admin太复杂了改起来很麻烦,尝试看下用node.js是不是简单些,因为是零基础,所以很多问题都要从头研究。
1、node.js安装
https://www.runoob.com/nodejs...
注意设置系统path路径
2、最简单的node.js程序运行
https://www.runoob.com/nodejs...
是挺有意思的,可以直接创建一个server
3、写一个获取微信后台accesstoken的服务页面
// token.js
const http = require('http');
const request = require('request');
var urltool = require('url');
var querystring = require('querystring');
const hostIp = '127.0.0.1';
const apiPort = 6060;
const data={
appid:"wx4$%#%#%#",//你的微信小程序的appid
secret:"@##¥¥……¥##R¥",//你的微信小程序的appsecret
grant_type:"client_credential",
env:"^%$#^@^" //你的微信小程序的环境参数
};
//创建 API 代理服务
const apiServer = http.createServer((req, res) => {
console.log("***************************************")
console.log('[请求]来自='+req.url);
if(req.url=="/"){
getAccessToken(res)
}
});
//监听 API 端口
apiServer.listen(apiPort, hostIp, () => {
console.log('代理接口,运行于 http://' + hostIp + ':' + apiPort + '/');
});
function getAccessToken(res){
const url='https://api.weixin.qq.com/cgi-bin/token?appid='+data.appid+'&secret='+data.secret+'&grant_type='+data.grant_type;
request({
url: url,//请求路径
method: "GET",//请求方式,默认为get
headers: {//设置请求头
"content-type": "application/json",
},
body: JSON.stringify(data)//post参数字符串
}, function(error, response, body) {
if (!error && response.statusCode === 200) {
//编码类型
res.setHeader('Content-Type', 'text/plain;charset=UTF-8');
//允许跨域
res.setHeader('Access-Control-Allow-Origin', '*');
//返回代理内容
console.log("返回数据:"+body)
res.end(body);
}
});
}
所有的第三方程序访问微信后台数据都需要这个token。
appid和appsecret可在微信小程序公众服务平台里查看,env在微信开发者工具里查看。
const request = require('request');
这句后台报错的话,说明request没有安装,可以使用命令行
cnpm install request
在node.js服务页面目录下进行安装,安装目录是node_modules。request是node.js服务端向其它服务接口发起请求的工具包,在这里我们通过request访问微信小程序后台服务,关于request的用法参考
https://www.cnblogs.com/lovel...
4、在命令行下运行
node token.js
打开浏览器访问127.0.0.1:6060,如果返回类似下面的数据说明OK啦
{"access_token":"41_dFK6kealVld7JJ7J_UKFCecesrsws3-4OIOe8aGIOpPe43ycCAv0IE2ZWIwa9T833FRlkLz31IjKLa8bExWtWQfbpWR9d1zdjnf7Ek1_Wy_KXT2oSpoi_SDKnIQmoRkowg7syV57aEeZOb_OHUMhAGAXKC","expires_in":7200}
娄靖宇
娄靖宇
宣传栏
微信小程序提供了后台数据库API接口,怎么实现用网页读取和编辑后台数据呢?之前看的vue-element-admin太复杂了改起来很麻烦,尝试看下用node.js是不是简单些,因为是零基础,所以很多问题都要从头研究。
1、node.js安装
https://www.runoob.com/nodejs...
注意设置系统path路径
2、最简单的node.js程序运行
https://www.runoob.com/nodejs...
是挺有意思的,可以直接创建一个server
3、写一个获取微信后台accesstoken的服务页面
// token.js
const http = require('http');
const request = require('request');
var urltool = require('url');
var querystring = require('querystring');
const hostIp = '127.0.0.1';
const apiPort = 6060;
const data={
appid:"wx4$%#%#%#",//你的微信小程序的appid
secret:"@##¥¥……¥##R¥",//你的微信小程序的appsecret
grant_type:"client_credential",
env:"^%$#^@^" //你的微信小程序的环境参数
};
//创建 API 代理服务
const apiServer = http.createServer((req, res) => {
console.log("***************************************")
console.log('[请求]来自='+req.url);
if(req.url=="/"){
getAccessToken(res)
}
});
//监听 API 端口
apiServer.listen(apiPort, hostIp, () => {
console.log('代理接口,运行于 http://' + hostIp + ':' + apiPort + '/');
});
function getAccessToken(res){
const url='https://api.weixin.qq.com/cgi-bin/token?appid='+data.appid+'&secret='+data.secret+'&grant_type='+data.grant_type;
request({
url: url,//请求路径
method: "GET",//请求方式,默认为get
headers: {//设置请求头
"content-type": "application/json",
},
body: JSON.stringify(data)//post参数字符串
}, function(error, response, body) {
if (!error && response.statusCode === 200) {
//编码类型
res.setHeader('Content-Type', 'text/plain;charset=UTF-8');
//允许跨域
res.setHeader('Access-Control-Allow-Origin', '*');
//返回代理内容
console.log("返回数据:"+body)
res.end(body);
}
});
}
所有的第三方程序访问微信后台数据都需要这个token。
appid和appsecret可在微信小程序公众服务平台里查看,env在微信开发者工具里查看。
const request = require('request');
这句后台报错的话,说明request没有安装,可以使用命令行
cnpm install request
在node.js服务页面目录下进行安装,安装目录是node_modules。request是node.js服务端向其它服务接口发起请求的工具包,在这里我们通过request访问微信小程序后台服务,关于request的用法参考
https://www.cnblogs.com/lovel...
4、在命令行下运行
node token.js
打开浏览器访问127.0.0.1:6060,如果返回类似下面的数据说明OK啦
{"access_token":"41_dFK6kealVld7JJ7J_UKFCecesrsws3-4OIOe8aGIOpPe43ycCAv0IE2ZWIwa9T833FRlkLz31IjKLa8bExWtWQfbpWR9d1zdjnf7Ek1_Wy_KXT2oSpoi_SDKnIQmoRkowg7syV57aEeZOb_OHUMhAGAXKC","expires_in":7200}