Я хочу передать некоторые переменные среды с сервера Koa клиенту. В экспресс я мог сделать что-то вроде res.render('index', { data: 'someData' });
, а затем смог получить доступ к data
. В Коа я не вижу, как это сделать. Он упоминает, используя context.state
, но я не могу найти пример того, как получить это в клиенте.Koa передает данные от сервера к клиенту
0
A
ответ
1
Вы можете сделать что-то подобное в Koa, вам просто нужно использовать правильное промежуточное ПО. Попробуйте koa-views, если вы используете один из supported engines.
Вот полный пример (этот пример предполагает, что вы используете КОА v1 и EJS как ваш шаблонизатор):
app.js
const Koa = require('koa')
const views = require('koa-views')
const router = require('./routes')
const app = new Koa()
app.use(views(__dirname + '/views', { extension: 'ejs' }))
app.use(router.routes())
app.use(router.allowedMethods())
app.listen(3000)
routes.js
const router = require('koa-router')()
router.get('/', function *() {
yield this.render('index', { title: 'Home' })
})
router.get('/about', function *() {
yield this.render('about', { title: 'About' })
})
module.exports = router
Просто измените аргумент extension
, который вы передаете промежуточному программному обеспечению, на основе которого который вы используете.
Возможно, используйте что-то вроде https://www.npmjs.com/package/koa-locals –