2017-01-20 4 views
0

Я хочу передать некоторые переменные среды с сервера Koa клиенту. В экспресс я мог сделать что-то вроде res.render('index', { data: 'someData' });, а затем смог получить доступ к data. В Коа я не вижу, как это сделать. Он упоминает, используя context.state, но я не могу найти пример того, как получить это в клиенте.Koa передает данные от сервера к клиенту

+0

Возможно, используйте что-то вроде https://www.npmjs.com/package/koa-locals –

ответ

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, который вы передаете промежуточному программному обеспечению, на основе которого который вы используете.