微信小程序开发之server-2-实现会话层
凌雪 2018-10-10 来源 :网络 阅读 1536 评论 0

摘要:本文将带你了解微信小程序开发之server-2-实现会话层,希望本文对大家学微信有所帮助。

本文将带你了解微信小程序开发之server-2-实现会话层,希望本文对大家学微信有所帮助。


1.安装MongoDB#安装   MongoDB及其客户端命令行工具
    yum install mongodb-server mongodb -y
    #查看版本
    mongod --version
    mongo --version2.启动 MongoDB#创建目录,用于 MongoDB 数据和日志存储
    mkdir -p /data/mongodb
    mkdir -p /data/logs/mongodb
    #启动 MongoDB   注:首次启动可能会花费大概 1min   时间
    mongod --fork --dbpath /data/mongodb --logpath   /data/logs/mongodb/wxpro.log
    #可以使用下面的命令来检查是否启动成功  #注:MongoDB 默认监听   27017 端口
    netstat -ltp | grep 270173.添加 MongoDB 用户#登录本地 MongoDB 服务
    mongo
    #创建用户wxpro
    use wxpro;
    db.createUser({ user: 'wxpro', pwd: 'wxpro****', roles: ['dbAdmin',   'readWrite']});
    #退出
    exit4.安装 Node 模块实现小程序的会话功能,我们需要安装 connect-mongo和 wafer-node-sessioncd   /var/www/wxpro/
    npm install connect-mongo wafer-node-session   --save5.实现小程序会话#创建配置文件config.js
    module.exports = {
        serverPort: '8765',
        // 小程序 appId 和 appSecret
        // 请到 https://mp.weixin.qq.com 获取   AppID 和 AppSecret
        appId: 'YORU_APP_ID',
        appSecret: 'YOUR_APP_SECRET',  
   
        // mongodb   连接配置,生产环境请使用更复杂的用户名密码
        mongoHost: '127.0.0.1',
        mongoPort: '27017',
        mongoUser: 'wxpro',
        mongoPass: 'wxpro****',
        mongoDb: 'wxpro'
    };#编辑app.js,添加会话实现逻辑
    // 引用 express 来支持 HTTP Server 的实现
    const express = require('express');
    // 引用 wafer-session 支持小程序会话
    const waferSession = require('wafer-node-session');
    // 使用 MongoDB 作为会话的存储
    const MongoStore = require('connect-mongo')(waferSession);
    // 引入配置文件
    const config = require('./config');
   
    // 创建一个 express 实例
    const app = express();
   
    // 添加会话中间件,登录地址是 /login
    app.use(waferSession({
        appId: config.appId,
        appSecret: config.appSecret,  
        loginPath: '/login',
        store: new MongoStore({
            url:   `mongodb://${config.mongoUser}:${config.mongoPass}@${config.mongoHost}:${config.mongoPort}/${config.mongoDb}`  
        })
    }));
   
    // 在路由 /me 下,输出会话里包含的用户信息
    app.use('/me', (request, response, next) => {
        response.json(request.session ?   request.session.userInfo : { noBody: true });
        if (request.session) {
            console.log(`Wafer session   success with openId=${request.session.userInfo.openId}`);
        }
    });
   
    // 实现一个中间件,对于未处理的请求,都输出 "Response from express"
    app.use((request, response, next) => {
        response.write('Response from   express');
        response.end();
    });
   
    // 监听端口,等待连接
    app.listen(config.serverPort);
   
    // 输出服务器启动日志
    console.log(`Server listening at //127.0.0.1:${config.serverPort}`);#重启服务
    pm2 restart app重启后,使用配套的小程序完成会话测试:打开配套小程序 - 点击 实验二:会话 -   获取会话,如果您能看到您的微信头像,那就表示会话已经成功获取了。    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved