forked from node-webot/webot-example
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
57 lines (42 loc) · 1.83 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
var express = require('express');
var webot = require('weixin-robot');
var log = require('debug')('webot-example:log');
var verbose = require('debug')('webot-example:verbose');
// 启动服务
var app = express();
// 实际使用时,这里填写你在微信公共平台后台填写的 token
var wx_token = process.env.WX_TOKEN || 'keyboardcat123';
var wx_token2 = process.env.WX_TOKEN_2 || 'weixinToken2';
// remove this test code in production environment
try {
// for submodulized repository only
webot = require('../');
} catch (e) {}
// app.use(express.query());
app.use(express.cookieParser());
// 为了使用 waitRule 功能,需要增加 session 支持
// 你应该将此处的 store 换为某种永久存储。请参考 http://expressjs.com/2x/guide.html#session-support
app.use(express.session({ secret: 'abced111', store: new express.session.MemoryStore() }));
// 启动机器人, 接管 web 服务请求,默认会监听根目录请求
webot.watch(app, { token: wx_token, path: '/wechat' });
// 若省略 path 参数,会监听到根目录
// webot.watch(app, { token: wx_token, });
// 可以建立多个实例,并监听到不同 path ,
// 后面指定的 path 不可为前面实例的子目录
var webot2 = new webot.Webot();
webot2.set('hello', 'hi.');
webot2.watch(app, { token: wx_token2, path: '/wechat_2' });
// 载入路由规则
require('./rules')(webot);
// 在环境变量提供的 $PORT 或 3000 端口监听
var port = process.env.PORT || 3000;
app.listen(port, function(){
log("Listening on %s", port);
});
// 微信后台只允许 80 端口,你可能需要自己做一层 proxy
app.enable('trust proxy');
// 当然,如果你的服务器允许,你也可以直接用 node 来 serve 80 端口
// app.listen(80);
if(!process.env.DEBUG){
console.log("set env variable `DEBUG=webot-example:*` to display debug info.");
}