Giter Club home page Giter Club logo

parameter's Introduction

koa-parameter

NPM version build status Test coverage David deps node version Gittip

parameter validate middleware for koa, powered by parameter.

Installation

$ npm install koa-parameter --save

Usage

const Koa = require('koa');
const parameter = require('koa-parameter');

const app = new Koa();

parameter(app); // add verifyParams method, but don't add middleware to catch the error
// app.use(parameter(app)); // also add a middleware to catch the error.

app.use(async function (ctx) {
  ctx.verifyParams({
    name: 'string'
  });
});

Checkout parameter to get all the rules.

Translate

You can override the translate method of parameter to implement I18n, by passing a function like this :

const Koa = require('koa');
const parameter = require('koa-parameter');

const app = new Koa();

parameter(app, function() {
  // Same example with node-parameter
  var args = Array.prototype.slice.call(arguments);
  // Assume there have I18n.t method for convert language.
  return I18n.t.apply(I18n, args);
});

app.use(async function (ctx) {
  ctx.verifyParams({
    name: 'string'
  });
});

Example

License

MIT

parameter's People

Contributors

aurlin avatar dead-horse avatar greenkeeperio-bot avatar juliangruber avatar npmmirror avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

parameter's Issues

Validate non-string parameters

Since Koa's ctx.query object has every query parameter set to a string value, this middleware is throwing an error when I attempt to validate a query parameter that should be an integer. For instance, if my URI has a query parameter like ?limit=5 and then I do ctx.verifyParams({ limit: 'int' }); an error is thrown because ctx.query is { limit: '5' }. Is there a way to tell the middleware to attempt to coerce the query parameter's value to the expected type from a string before the validation occurs or a separate middleware that would perform this?

Translate error message

Hi,

Maybe i miss something, but i didn't find anything to translate error message from this module :(

Since the version 1.1.1 of parameter, we can pass a function to translate all the error message.
Is it possible to upgrade parameter to this version (or last version), and expose "parameter.translate" (or something else like parameter(app, translate) please ? :)

I can send a PR if you want

Thanks !

你好,请问数组如何进行校验?

数据格式如下:
[
{
"type": "article",
"objectId": "5ffd6f8f3b75108c28b1bebf",
"name": "articleLike",
"email": "xd.qq.com"
},
{
"type": "article",
"objectId": "5ffd6f8f3b75108c28b9bebf",
"name": "articleLike",
"email": "xd.qq.com"
}
]

Provide mechanism to add custom rules

There is currently no way to use the full power of parameter and add custom rules when using koa-parameter. I suggest either letting the user pass in their own pre-initialized and setup Parameter object or giving some config option to add custom rules.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.