小程序server-實現會話層

小程序server-實現會話層開發教程:

1.安裝MongoDB

#安裝 MongoDB及其客戶端命令行工具
yum install mongodb-server mongodb -y
#查看版本
mongod --version
mongo --version

2.啓動 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 27017

3.添加 MongoDB 用戶

#登陸本地 MongoDB 服務
mongo
#建立用戶wxpro
use wxpro;
db.createUser({ user: 'wxpro', pwd: 'wxpro****', roles: ['dbAdmin', 'readWrite']});
#退出
exit

4.安裝 Node 模塊

實現小程序的會話功能,咱們須要安裝 connect-mongo
和 wafer-node-sessionnode

cd /var/www/wxpro/
npm install connect-mongo wafer-node-session --save

5.實現小程序會話

#建立配置文件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 http://127.0.0.1:${config.serverPort}`);
#重啓服務
pm2 restart app

重啓後,使用配套的小程序完成會話測試:打開配套小程序 - 點擊 實驗二:會話 - 獲取會話,若是您能看到您的微信頭像,那就表示會話已經成功獲取了。mongodb

相關文章
相關標籤/搜索