雲函數使用 koa 和 express

使用 serverless-http 插件轉換請求

Koa

// index.js
'use strict'
const serverless = require('serverless-http')
const Koa = require('koa')
const app = new Koa()

app.use(async (ctx) => {
  ctx.body = 'Hello World Koa'
})

// 執行方法
exports.main_handler = serverless(app)

express

// index.js
'use strict'
const serverless = require('serverless-http')
const express= require('express')
const app = express()

// 騰訊雲函數Api觸發器默認不會觸發
app.get('/', (req, res) =>{
 res.send('Hello World! express : /')
})

// 騰訊雲函數Api觸發器默認不會觸發
app.get('/user', (req, res) =>{
 res.send('Hello World! express : /')
})

// 使用帶雲函數名稱的路由 可以觸發
// test 函數名稱
app.get('/test', (req, res) =>{
 res.send('Hello World! express : /')
})


// 執行方法
exports.main_handler = serverless(app)

關於騰訊雲函數發佈後找不着路由問題

解決 /雲函數名 之外路由找不着問題

// 執行方法

exports.main_handler = async (event, context, callback) => {
    // 刪除函數名稱
    if(event['path'] == '/'+ context.function_name)
        event['path'] = '/'
    else
        event['path'] = event['path'].replace('/'+ context.function_name,'') 
    return await serverless(app)(event,context)
};
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章