Tag: koa

我可以在koa中使用'res'对象吗?

我对koa很新。 我的旧代码是在expression,如: //GET exports.readMessages = function(req, res){ var result; … res.json({ result: result }); }; //GET exports.preAddMessage = function(req, res){ var valueA; var valueB; … res.json({ valueA: valueA, valueB: valueB }); }; // POST exports.addMessage = function (req, res) { data.messages.push(req.body); … res.json(resultValue); }; 我想改变它在koa代码,如: //GET exports.readMessages = function* () { … }; //GET exports.preAddMessage […]

Koa.js中止运行请求

如何使用另一个请求在koa.js中结束请求。 比方说,我保持活动的请求上下文在一个对象。 假设请求A开始并且需要很长时间。 我怎样才能提出另一个请求,告诉请求A结束。 var requests = {}; // middleware to track requests app.use(function*(next) { var reqId = crypto.randomBytes(32).toString('hex'); requests[reqId] = { context: this } yield next; delete requests[reqId]; } ); // route to kill request using ID generated from middleware above router.get('/kill/:reqId', function *(next) { var req = requests[this.params.reqId]; if (req) { // abort […]

试图thunkify一个基于callback的函数来使用发电机(良率),不起作用

我正在尝试使用生成器同步调用koa中的常规callback样式函数。 以下方法工作: var res = yield function (cb) { myDaoObject.load(function (err, res) { cb(err, res); }) }; 所以我不会用适当的库应用来代替它: var ld = thunkify(myDaoObject.load); var res = yield ld(); 而这是行不通的。 这不应该是一回事吗?

如何使用默认捕获和处理程序创buildPromise

我正在创build一个使用koa和babelasynchronous/等待的API 我的控制器函数中的每一个承诺看起来像这样 async function … { await Promise … .then(data => response function) .catch(err => err function) } 每个承诺都有完全相同的响应和错误function。 有没有办法让我自动地使用相同的then / catch解决每个承诺(就像promise的默认parsing函数一样)。 然后我的代码看起来像这样: async function … { await Promise … } 承诺会自动解决/捕获。

不能使用KOA-NEO4J库来传递参数

我正在尝试创build一个连接到NEO4J实例的REST API。 我使用koa-neo4j库作为基础( https://github.com/assister-ai/koa-neo4j-starter-kit )。 下面的第一个例子工作正常。 当我打到端点“myapp / metric”时,我从数据库中得到预期的结果。 Index.js //Return all metrics from the database app.defineAPI({ method: 'GET', route: '/api/v1/imm/metric', cypherQueryFile: './src/api/v1/imm/metric/metric.cyp' }); metric.cyp MATCH (a:metric) RETURN a AS metric 我试图build立在这个例子创build一个端点,我可以传递一个参数,将在密码查询中使用我跟随了文档,并结束了下面。 Index.js //Return all metrics from the database matching a specific metric name app.defineAPI({ method: 'GET', route: '/api/v1/imm/metric/:metricname', cypherQueryFile: './src/api/v1/imm/metric/metric-by-name.cyp' }); 指标按name.cyp MATCH (a:metric […]

如何组织由express / koa后端服务的webpacked vue.js应用程序?

我在设置一个易于debuggingvue.js项目与koa服务器结合的一些困难。 命令cross-env NODE_ENV=development webpack-dev-server –open –hot从webpack-simple生成configuration似乎是一件好事,但与koa / express一起使用这个命令的惯例是什么? 我find的一个解决scheme是使用pm2同时启动vue和后端的webpack-dev-server,但是我认为这意味着我需要初始着陆vue.js应用程序页面的复制版本,目前正在从koa路线上/。 对于我来说这两种服务器的想法也是令人困惑的,而且感觉很奇怪。 所以,我想我一定是做错了! 有人可以解释一个很好的常规方式做到这一点。

Koa2:如何编写中间件链?

所以在expression中,我们可以有一个中间件链,复制一个例子: middleware = function(req, res){ res.send('GET request to homepage'); }); app.get('/', middleware, function (req, res) { res.send('GET request to homepage'); }); 请问在koa2中写这个的等效方法是什么? 我正在考虑使用它的路线,每条路线我想有一个中间件来检查用户是否已经login。 谢谢 !

node.js:如何使用koa的护照

护照的网站索赔 护照可以不显眼地放入任何基于Express的Web应用程序。 我可以和Koa一起使用吗? 如果是这样,那么学习如何做是一个好的起点? 我正在考虑使用会话的经典用户名/密码策略(也许与Redis)。 请原谅这个愚蠢的问题,我刚刚开始使用Node,并且有太多东西需要一次学习,而我的脑袋正在旋转。

为什么这个生成器返回一个函数而不是一个值

基本上,我试图做我的koa应用程序的HTTP请求,并想知道我会做错什么 var request = require('koa-request'); var beatsGen = beats(); var response1 = beatsGen.next().value; function *beats (){ var options = { url: 'https://api.github.com/repos/dionoid/koa-request', headers: { 'User-Agent': 'request' } }; var response = yield request(options); } 当我控制日志响应1这是我得到的 respone from beats is function (callback) { _request(uri, options, function (error, response, body) { callback(error, response); }) } 我认为response1将是包含callback的body参数而不是函数本身的object的someType。 那么,为什么我得到的函数作为生成器.next()。值? […]

我怎样才能强制在Coffeescript 1.9使用生成器?

CoffeeScript支持生成器现在,但是,我发现只有你使用yield关键字,那么你的函数将被编译为生成器,这里是我的问题,我用koa写我的代码,而一些中间件我不需要asynchronous逻辑,所以我不CoffeeScript认为这是一个正常的function,但是, koa说: app.use() requires a generator function T ^ T,任何人都有一个解决scheme? 谢谢!