Tag: koa

哪个会更好的API创build – RESTify或KOA.js

我正在尝试为iOS应用程序创build一个REST服务。 我正在辩论我应该使用哪个框架(因为我也对Node.js有点新鲜)。 我开始考虑以下 – 快速,HAPI,RESTify,KOA.js(使用KOALA也许?),最后由RESTify之间的争论(因为它似乎是非常容易创buildAPI)和KOA.js(因为它是新标准将取代Express).. 我也看到了KOA.js最近的stream行。 有人能给我答案,哪个对我更好?

在Node js中使用'require'来获得更好的性能

我在我的控制器中使用了很多依赖项。 这是一个很好的build议,使用下面的东西略微提高性能:(即延迟加载控制器) app.use(route.get('/test', function(){ c = require('./testcontroller') c.method(); }) ); app.use(route.get('/test2', function(){ c2 = require('./testcontroller2') c2.method(); }) ); 而不是常见的方法: c = require('./testcontroller') c2 = require('./testcontroller2') //all other controllers app.use(route.get('/test', c.method) app.use(route.get('/test2', c2.method)

让koa工作(nodejs web框架)

我正在运行Deepin并试图让koa工作。 有关这个问题的文件很less。 我做了以下koajs.com上所述: $ npm install -gn $ n 0.11 $ node –harmony my-koa-app.js 我收到错误: ➜test-koa-app$ sudo node –harmony test-koa-app.js module.js:338 throw err; ^ Error: Cannot find module 'koa' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/home/karl/nodejs/test-koa-app/test-koa-app.js:1:73) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load […]

如何在testingNodeJS API时模拟外部服务

我有用koa构build的JSON API,我试图用集成testing来覆盖。 一个简单的testing看起来像这样: describe("GET: /users", function() { it ("should respond", function (done) { request(server) .get('/api/users') .expect(200, done); }); }); 现在问题来了,当一个控制器后面的动作 – 让说在POST /用户saveUser – 使用外部资源。 例如,我需要validation用户的电话号码。 我的控制器看起来像这样: save: async function(ctx, next) { const userFromRequest = await parse(ctx); try { // validate data await ctx.repo.validate(userFromRequest); // validate mobile code await ctx.repo.validateSMSCode( userFromRequest.mobile_number_verification_token, userFromRequest.mobile_number.prefix + userFromRequest.mobile_number.number ); […]

file upload与nodejs koa co-busboy

使用KOA上传文件时,我使用co-busyboy来parsing文件字段。 官方示例如下所示: var parse = require('co-busboy') var parts = parse(this); var part; while (part = yield parts) { if(!part.length) //it is a stream part.pipe(fs.createWriteStream('some file.txt')); } 由于某些原因,我想将所有“部分”stream保存到一个数组中,并在获取所有文件stream时执行写入的实际文件。 即: var parse = require('co-busboy'); var parts = parse(this); var part; var partArrays = []; var cnt = 0; while(part = yield parts){ partArray[cnt++] = part; } //after […]

Passport + JWT + Socket.IO身份validation

我正在寻找在我的KOA NodeJS应用程序中使用Socket.io实现JWT身份validation的最佳方向。 我在socketio + jwt上find了一个很好的回购 ,但是作者并没有使用护照也没有使用koa。 我想我已经有了一个好的开始,但是我想知道在使用智威汤逊之后,护照是否过分了。 以下是我的代码。 Koa.js import koa from 'koa'; import router from 'koa-router'; import json from 'koa-json'; import bodyParser from 'koa-bodyparser'; import passport from './passport'; import session from './session'; import { config } from './env/env'; export class Koa { constructor(){ this.app = koa(); this.initMiddleware(); } initMiddleware(){ this.app.use(json()); this.app.use(bodyParser()); this.app.keys = config.secret; […]

Meteor Js作为前端,Koa Js作为后端

我正在创build一个Meteor Js应用程序作为前端,我使用Koa Js作为后端。 我的Koa目的是能够监视我的前端meteor应用程序的浏览量。 你能告诉我如何开始?

Cookie在Koa / Express请求中是“未定义的”

我使用Koa JS框架进行jwtauthentication。 所以,基本上当用户login时,我设置了一个jwt令牌(签名)到用户的浏览器cookie,这似乎工作正常,如下所示(Chrome cookie设置): (www.localhost.com而不是本地主机是因为我编辑了我的主机文件,但这不应该设置/获取cookie) 但是,问题是当我发送POST请求到我的本地Koa服务器时,jwt cookie是未定义的。 我正在做的validation令牌是这样的: routes.js const Router = require("koa-router"); const router = new Router(); router.post(`api/authenticate`, function* () { const jwt = this.cookies.get("jwt", { signed: true }); //jwt is undefined!! if (!jwt) this.throw("Invalid or expired token!"); this.status = 200; }); //… app.use(router.routes()); app.use(router.allowedMethods()); 这里, this.cookies.get(“jwt”)返回undefined。 POST请求使用带有“withCredentials:true”标头和有效的CSRF标记的AXIOS库发送: authenticate.js axios.post("api/authenticate", {}, { headers: { […]

如何在koa的反应路由器中使用浏览器历史logging

在快递中,我们可以使用以下代码来处理请求。 当请求不是由路由器处理时,服务器端将发送index.html。 app.get('*', function (request, response){ response.sendFile(path.resolve(__dirname, '../public', 'index.html')) }) 但是在koa中,以下代码不起作用。 当请求不被koa-router处理时,它将返回404而不是index.html。 var send = require('koa-send') var serve = require('koa-static') var router = require('koa-router') var koa = require('koa') var app = koa(); app.use(serve(__dirname+'/../public')); app.use(function *(){ yield send(this, path.join(__dirname, '/../public/','index.html' )); }) app.use(router.routes()) 以下代码也不起作用 router .get('*', function* () { yield send(this, __dirname +'/../public/index.html') })

如何整合与koa和joi的招摇?

我正在编写基于KOA框架的节点API。 为了validation,我更喜欢Joivalidation,并添加一个中间件。 现在我想整合Swagger 。 但我认为我编写了两次相同的代码部分(请求数据validation部分,一个在joivalidation中,另一个在swagger yaml文件中)。 请给我举一个例子,或者把swagger,koa和joi结合起来的最好方法。