uniapp+node.js(express框架)获取微信小程序的openid

简介: uniapp+node.js(express框架)获取微信小程序的openid

前端代码:

<template>
        <view class='other'>
            <view class='other-item' @tap='loginOther()'>
                <button>微信登录</button>
                <view></view>
            </view>
        </view>
</template>
<script>
  // 这里是引入请求本地的ip地址
import $http from '@/common/api/request.js'
export default{
    methods:{
        loginOther(){
            uni.login({
                success:(res)=>{
          let code=res.code;
          $http.request({
              url:"/login",
              method:"POST",
              data:{
                code
              },
          }).then((res)=>{
              console.log(res)
          }).catch(()=>{
              uni.showToast({
                  title:'请求失败',
                  icon:'none'
              })
          })
                }
            })
        }
    }
}
</script>
<style scoped>
</style>
请求代码(request.js):
export default{
    common:{//默认数据格式
        baseUrl:"http://本地ip地址或者你的服务器ip地址或者你服务器的域名:3000/api",
        data:{},
        header:{
            "Content-Type":"application/json",
            "Content-Type":"application/x-www-form-urlencoded"
        },
        method:"GET",
        dataType:"json"
    },
    request( options={} ){//options是默认值
        //这里是进行设置加载中给数据进行缓存一下
        uni.showLoading({
            title: '加载中'
        });
        options.url = this.common.baseUrl + options.url;
        options.data =     options.data || this.common.data;
        options.method = options.method || this.common.method;
        options.dataType =     options.dataType || this.common.dataType;
    return new Promise((res,rej)=>{
            uni.request({
                ...options,
                success: (result) => {
                    if(result.statusCode != 200){//处理其他接口没有数据而出现404报错的问题
                        return rej();
                    }
                    setTimeout(function () {
                        uni.hideLoading();
                    }, 0);//这是设置加载数据的显示时间
                    let data = result.data.data;
                    res(data);
                }
            })
        })
    }
}
后端node.js代码(express框架)
var express = require('express');
var router = express.Router();
//要记得下载这个包,npm install request
const request = require('request')
router.post('/api/login', function(req, res, next) {
  let code=req.body.code;//登陆传过来的code
 let appid = "自己的"; //自己小程序后台管理的appid,可登录小程序后台查看
 let mysecret = "自己的"; //小程序后台管理的secret,可登录小程序后台查看
 let grant_type = "authorization_code"; // 授权(必填)默认值
 //拼接出请求微信服务器的url地址然后请求oppenid和session_key
  let url ='https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + mysecret + '&js_code=' + code + '&grant_type=authorization_code';
      request(url,(error, response, body)=>{
        //JSON.parse()方法将JSON格式字符串转换为js对象
        let parsData = JSON.parse(body.toString());
        let openid=parsData.openid;
        let session_key=parsData.session_key;
        //返回前端是下面这个被注释的
        // res.send({
        //   data:parsData
        // })    
         })
})

module.exports = router;

这样子是可以完全请求出微信小程序的openid,目前我这样子做是有效的


相关文章
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
753 1
|
1月前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
1月前
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
49 1
|
1月前
|
JavaScript 中间件 关系型数据库
构建高效的后端服务:Node.js 与 Express 的实践指南
在后端开发领域,Node.js 与 Express 的组合因其轻量级和高效性而广受欢迎。本文将深入探讨如何利用这一组合构建高性能的后端服务。我们将从 Node.js 的事件驱动和非阻塞 I/O 模型出发,解释其如何优化网络请求处理。接着,通过 Express 框架的简洁 API,展示如何快速搭建 RESTful API。文章还将涉及中间件的使用,以及如何结合 MySQL 数据库进行数据操作。最后,我们将讨论性能优化技巧,包括异步编程模式和缓存策略,以确保服务的稳定性和扩展性。
|
29天前
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
2月前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的完美结合
【10月更文挑战第21天】本文将引导你走进Node.js和Express框架的世界,探索它们如何共同打造一个高效、可扩展的后端服务。通过深入浅出的解释和实际代码示例,我们将一起理解这一组合的魅力所在,并学习如何利用它们来构建现代Web应用。
64 1
|
2月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
355 3
|
1月前
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
47 0
|
1月前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
1月前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的融合之道
【10月更文挑战第31天】在追求快速、灵活和高效的后端开发领域,Node.js与Express框架的结合如同咖啡遇见了奶油——完美融合。本文将带你探索这一组合如何让后端服务搭建变得既轻松又充满乐趣,同时确保你的应用能够以光速运行。
35 0