我看到了:如何用deno返回html或json?但我需要一个答案橡树-张贴在下面。
这将是一个类似的东西
import { Application } from 'https://deno.land/x/oak/mod.ts'
import { Router } from 'https://deno.land/x/oak/mod.ts'
const port = 8000
// Handler
const getTestResponse = ({ response }: { response: any }) => {
response.status = 200
response.headers.set("Content-Type", "application/json") // set to html if you want
response.body = {
data: "test"
}
}
const app = new Application()
// Router
const router = new Router()
router.get('/api/v1/test', getTestResponse)
app.use(router.routes())
app.use(router.allowedMethods())
console.log(`Server running on port ${port}`)
await app.listen({ port })
- 默认情况下使用JSON作为响应(无需像示例中那样显式设置(-我只是想表明您可以更改它
注意:请将处理程序、路由和主代码拆分到现实世界中的不同模块,这样其他人就不会对你生气:(
替代解决方案:
router.get('/test/', async (ctx) => {
ctx.response.type = "application/json";
ctx.response.body = {test: 1};
});