// koa-getting-started --> app.js    

// 设置模版引擎
app.use(views(path.join(__dirname, 'views')));
// 设置静态资源目录
app.use(statics(path.join(__dirname, 'public')));

const router = new Router();
app.use(router.routes());
// 加载云引擎中间件
app.use(AV.koa());

app.proxy = true;
app.use(AV.Cloud.HttpsRedirect({framework: 'koa'}));

app.use(bodyParser());

router.get('/', async function(ctx) {
    ctx.state.currentTime = new Date();
    await ctx.render('./index.ejs');
});
// 可以将一类的路由单独保存在一个文件中
app.use(require('./routes/todos').routes());

直接用 demo 加上 https 中间件(如上)部署,请求todos列表时为什么会使请求无限循环重定向?

如果我想只使用 https ,我该怎么修改?

请问你是如何访问你的应用(访问哪个域名哪个地址)出现了「无限循环重定向 」?

.leanapp.cn 的域名都是自带 https 的,这个中间件是用于自动重定向到 HTTPS 的。

直接访问 {应用的域名}.leanapp.cn 没问题,点击 一个简单的「TODO 列表」示例 字样 进入 /todos 子页面 出现「无限循环重定向 」。

若更改顺序如下,首页也会 出现「无限循环重定向 」(火狐、谷歌也一样):

// koa-getting-started --> app.js 
// 前面不变

// 加载云引擎中间件
app.use(AV.koa());

app.proxy = true;
app.use(AV.Cloud.HttpsRedirect({framework: 'koa'}));

app.use(bodyParser());

const router = new Router();
app.use(router.routes());

// 后面不变

想知道这个中间件的设定是不是:只要是请求,不论是否是 https,都会返回重定向?

还是说 http 会重定向 为 https,而 https 的请求会略过?

你好,经过检查确实发现一个 AV.Cloud.HttpsRedirect 在 koa 下的 Bug,应该会在下个版本中修复,暂时你可以在 app.proxy = true; app.use(AV.Cloud.HttpsRedirect({framework: 'koa'})); 这两句之前添加:

app.use(async function(ctx, next) {
  ctx.req.secure = ctx.secure;
  return next();
});

来绕过这个问题。

原来如此,谢谢

Node SDK 发布了一个 3.1.1 版本解决了这个问题

3.1.1版本测试通过,bug已修复