charblus d4337c20d0 [server] booklist add user_info of nickName by mysql books and cSessionInfo tables for openid 5 years ago
..
controllers d4337c20d0 [server] booklist add user_info of nickName by mysql books and cSessionInfo tables for openid 5 years ago
middlewares d6fe278e21 add template 5 years ago
routes e089baac42 src client injust post /weapp/ 5 years ago
tools ffefdec959 addbook api post sucess books add err tobast 5 years ago
.eslintrc.json 9f2c36c12f [server] addbook api 5 years ago
README.md d6fe278e21 add template 5 years ago
app.js d6fe278e21 add template 5 years ago
config.js d19dc440b8 close domain name validatioin and no use useQcloudLogin for tencent cloud proxy wx small codes 5 years ago
nodemon.json d6fe278e21 add template 5 years ago
package-lock.json d6fe278e21 add template 5 years ago
package.json ffefdec959 addbook api post sucess books add err tobast 5 years ago
process.prod.json d6fe278e21 add template 5 years ago
qcloud.js d6fe278e21 add template 5 years ago
tools.md d6fe278e21 add template 5 years ago

README.md

腾讯云小程序解决方案 Demo - Node.js

Node.js 版本 Wafer SDK 的服务端 Demo

下载源码

你可以直接通过 git 将代码 clone 到本地,也可以点击这里下载。

git clone https://github.com/tencentyun/wafer-node-server-demo.git

开始使用

安装依赖

# 安装全局依赖
npm i pm2 nodemon -g

# 安装项目依赖
npm i

启动项目

# 开发环境,监听文件变化自动重启,并会输出 debug 信息
tnpm run dev

# 线上部署环境
tnpm start

按照小程序创建资源配置指引进行操作,可以得到运行本示例所需的资源和服务,其中包括已部署好的示例代码及自动下发的 SDK 配置文件 /etc/qcloud/sdk.config

  • 示例代码部署目录:/data/release/node-weapp-demo
  • 运行示例的 Node 版本:v8.1.0
  • Node 进程管理工具:pm2

项目结构

koa-weapp-demo
├── README.md
├── app.js
├── controllers
│   ├── index.js
│   ├── login.js
│   ├── message.js
│   ├── tunnel.js
│   ├── upload.js
│   └── user.js
├── middlewares
│   └── response.js
├── config.js
├── package.json
├── process.json
├── nodemon.json
├── qcloud.js
└── routes
    └── index.js

app.js 是 Demo 的主入口文件,Demo 使用 Koa 框架,在 app.js 创建一个 Koa 实例并响应请求。

routes/index.js 是 Demo 的路由定义文件

controllers 存放 Demo 所有业务逻辑的目录,index.js 不需要修改,他会动态的将 controllers 文件夹下的目录结构映射成 modules 的 Object,例如 Demo 中的目录将会被映射成如下的结构:

// index.js 输出
{
  login: require('login'),
  message: require('message'),
  tunnel: require('tunnel'),
  upload: require('upload'),
  user: require('user')
}

qcloud.js 导出了一个 SDK 的单例,包含了所有的 SDK 接口,之后使用的时候只需要 require 这个文件就行,无需重复初始化 SDK。

config.js 主要的配置如下:

{
  port: '5757',                             // 项目启动的端口

  appId: 'wx00dd00dd00dd00dd',              // 微信小程序 App ID
  appSecret: 'abcdefg',                     // 微信小程序 App Secret
  wxLoginExpires: 7200,                     // 微信登录态有效期
  useQcloudLogin: false,                    // 是否使用腾讯云代理登录

  /**
   * MySQL 配置,用来存储用户登录态和用户信息
   * 如果不提供 MySQL 配置,模式会使用自动配置好的本地镜像中的 MySQL 储存信息
   * 具体查看文档-登录态储存和校验
   **/
  mysql: {
    host: 'localhost',
    port: 3306,
    user: 'root',
    db: 'cAuth',
    pass: '',
    char: 'utf8'
  },
  
  // COS 配置,用于上传模块使用
  cos: {
    /**
     * 区域
     * 华北:cn-north
     * 华东:cn-east
     * 华南:cn-south
     * 西南:cn-southwest
     */
    region: 'cn-south',
    fileBucket: 'test',                    // Bucket 名称
    uploadFolder: ''                       // 文件夹
  }
}

除了 config.js ,腾讯云还会在你初始化小程序解决方案的时候,向你的机器下发 sdk.config,里面包含了你的腾讯云 AppId、SecretId、SecretKey 和服务器等信息,无需修改,qcloud.js 会自动引入。如果你想要在自己的机器上部署 SDK 的 Demo,请查看[自行部署 Demo 说明]()。

除此以外,关于 SDK 的详细配置信息,还可以查看 [SDK 的 API 文档]()。