构建简单的api service

[参看文章](https://www.robinwieruch.de/deno-oak-rest-api)

1.创建server.js 文件

import { Application } from 'https://deno.land/x/oak/mod.ts'
import router from './router.js'

const port = 8888
const app = new Application()

app.use(router.allowedMethods())
app.use(router.routes())

app.addEvenListener('listen', () => {
    console.log(`Listening on ${port}`)
})

await app.listen({ port })

2. 创建router.js文件

import { Router } from 'https://deno.land/x/oak/mod.ts'
import { walkSync } from 'https://deno.land/std/fs/mod.ts'

const router = new Router()

let files = []

for (const entry of walkSync('./src/api')) {
  if (entry.name !== 'index.js' && entry.name.slice(-3) === '.js') {
    files.push(entry);
  }
}

files.forEach(function (file) {
  const servicename = file.name.split('.js')[0];
  import(`./deno/${file.name}`).then((response) => {
    const service = response.default;
    Object.keys(service).map((key, index) => {
      service[key].map((path) => {
        router[key](`/${servicename}${path.url}`, path.handler);
      });
    });
  });
});

export default router;

3.创建module api文件

export default {
    get: [
        {
            url: '/get',
            handler: (ctx) => {
                ctx.response.body = 'Get api'
            }
        }
    ]
}

4.运行命令

deno run --allow-read --allow-write --allow-net --unstable ./src/server.js

最后更新于

这有帮助吗?