当前位置: 首页 > 后端技术 > Node.js

node.js与微信小程序后台数据库的交互(一)获取accesstoken

时间:2023-04-03 13:58:22 Node.js

微信小程序为后台数据库提供API接口。如何使用网页读取和编辑后台数据?之前看到的vue-element-admin太复杂了,改起来很麻烦。试试看用node.js会不会好点,因为是零基础,所以很多问题都要从头研究。1.Node.js安装https://www.runoob.com/nodejs...注意设置系统路径2.最简单的node.js程序运行https://www.runoob.com/nodejs...是的挺有意思的,可以直接创建一个server3,写一个服务页面,获取微信后台的accesstoken//token.jsconsthttp=require('http');constrequest=require('请求');varurltool=require('url');varquerystring=require('querystring');consthostIp='127.0.0.1';constapiPort=6060;constdata={appid:"wx4$%#%#%#",//你的微信账号Appidsecretprogram:"@##¥¥...¥##R¥",//你的微信小程序的appsecretgrant_type:"client_credential",env:"^%$#^@^"//你的微信环境参数applet};//创建API代理服务constapiServer=http.createServer((req,res)=>{console.log("***************************************")console.log('[request]from='+req.url);if(req.url=="/"){getAccessToken(res)}});//监听API端口apiServer.listen(apiPort,hostIp,()=>{console.log('代理接口,运行在http://'+hostIp+':'+apiPort+'/');});functiongetAccessToken(res){consturl='https://api.weixin.qq.com/cgi-bin/token?appid='+data.appid+'&secret='+data.secret+'&grant_type='+data.grant_type;request({url:url,//请求路径method:"GET",//请求方式,默认为getheaders:{//设置请求头"content-type":"application/json",},body:JSON.stringify(data)//post参数string},function(error,response,body){if(!error&&response.statusCode===200){//编码类型res.setHeader('Content-Type','text/plain;charset=UTF-8');//允许跨域res.setHeader('Access-Control-Allow-Origin','*');//返回Proxy内容console.log("返回数据:"+body)res.end(body);}});}所有第三方程序访问微信后台数据都需要这个tokenappid和appsecret,可以在微信小程序公共服务平台查看,env在查看微信开发者工具。constrequest=require('请求');如果后台报错,说明请求没有安装。可以使用命令行cnpminstallrequest安装到node.js服务页面目录下,安装目录为node_modules。requestisatoolkitforthenode.jsservertoinitiaterequeststootherserviceinterfaces.HereweaccessthebackgroundserviceoftheWeChatappletthroughrequest.Fortheusageofrequest,refertohttps://www.cnblogs.com/lovel...4.在命令行下运行nodetoken.js打开浏览器访问127.0.0.1:6060,如果返回类似下面的数据说明OK啦{"access_token":"41_dFK6kealVld7JJ7J_UKFCecesrsws3-4OIOe8aGIOpPe43ycCAv0IE2ZWIwa9T833FRlkLz31IjKLa8bExWtWQfbpWR9d1zdjnf7Ek1_Wy_KXT2oSpoi_SDKnIQmoRkowg7syV57aEeZOb_OHUMhAGAXKC","expires_in":7200}