Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Shubham Verma
    @codershubhamverma
    Below is the code
    const socket = require('socket.io');
    function socketSetup(server) {
    const io = socket(server);
    io.on('connection', client => {
    client.on('event', data => { // });
    client.on('disconnect', () => { // });
    });
    }
    module.exports = socketSetup;
    Tõnis Ostrat
    @tonisostrat

    your problem has nothing to do with hapi nor socket.io.

    TypeError: v.replace is not a function

    what is v?

    Sebastian Cheung CQF
    @scheung38
    Hi how do redirect http and https to new https thanks
    i.e http://www.example.pro/service/api or https://www.example.com/service/api -> https://www.example.pro/service/PX/api, note also need to concat /<PX> which can change for every redirect. Tried hapi-require-https but not sure why it does not require TLS cert?
    Shubham Verma
    @codershubhamverma
    Can anybody help me to configure socket.io with hapi
    ?
    Tõnis Ostrat
    @tonisostrat
    @codershubhamverma, try passing server.listener into the socket constructor instead of server
    piotrszaredko
    @piotrszaredko
    hapi v18, how return some date from mysql: server.route({
    method: 'GET',
    path:'/users',
    config: {
    tags: ['api'],
    description: 'Get all users',
    notes: 'Returns all users'
    },
    handler:(request, h) => {
    // let data = '';
    connection.query('SELECT * FROM users', (error, results, fields) => {
    if (error) throw error;
    console.log(results);
    });
    return results;
    }
    });
    '''js
    cos
    '''
    server.route({
    method: 'GET',
    path:'/users',
    config: {
    tags: ['api'],
    description: 'Get all users',
    notes: 'Returns all users'
    },
    handler:(request, h) => {
    // let data = '';
    connection.query('SELECT * FROM users', (error, results, fields) => {
    if (error) throw error;
    console.log(results);
    });
    return results;
    }
    });
    Ben Chiciudean
    @benydc
    how can I set failAction on all request for validation payload options?
    Ben Chiciudean
    @benydc
    I got it working with:
        server.ext('onPreResponse', (req, h) => {
          req.route.settings.validate.failAction = async function(request, h, err) {
            throw err;
          };
    
          return h.continue;
        });
    moonthug
    @moonthug
    thats one way :)
    You can pop it in server.route.settings.validate when you create the server (or in a ‘manifest’ file if you use glue as I do). In the example you gave, you are over writing the function each time a request comes in
    Probably not ideal
    Odell Joseph
    @dragonpiper
    Is there a way to have Authroization header automatically sent or do i always have to manually send it back. I'm using hapi-auth-jwt2
    Ghost
    @ghost~5bb3c7fed73408ce4faa2518
    i want to create a benchmark to compare between nodejs frameworks, and i need your help (uncompromising)
    https://github.com/hyron-group/benchmark
    Erik O'Leary
    @onionhammer
    Hey guys.. is there any support in hapi (or a plugin) for parsing (multipart/url-encoded) FormData where the resulting object is nested? i.e. ContactInfo_Email maps to { ContactInfo: { Email: "formvalue" }} ?
    I've tried it every which way; ContactInfo[Email], ContactInfo.Email, etc
    Ghost
    @ghost~5bb3c7fed73408ce4faa2518
    How to validate a complex input data ? let using https://www.npmjs.com/package/@hyron/validator
    David Luzar
    @dwelle
    Ghost
    @ghost~5bb3c7fed73408ce4faa2518
    I see. But, i can do it better
    David Luzar
    @dwelle
    @thangdjw @hyron/validator is yours? I thought you were asking, not advertisting :)
    Yoann MALLEMANCHE
    @YoannMa
    "Better" sure.
    Ben Chiciudean
    @benydc
    I'm using ejs to render some templates, but is it possible to return html string data with hapi from ejs template?
    Phudit Chuengjaroen
    @nuttikung
    Anyone using Grafana + Promotheus with hapi?
    Which module can be plugins with hapi 18
    Karthik
    @Kottugumada

    Hi, I have a schema:
    taskRelatedContent: Joi.array() .items(relatedContent) .allow(null),
    relatedContent translates to:
    const relatedContent = Joi.object().keys({ contentId: Joi.string(), lang: Joi.array(), displayName: Joi.string(), url: Joi.string(), mimeType: Joi.string(), });

    For some reason, the Joi.validate fails saying:

    "ValidationError: child \"taskRelatedContent\" fails because [\"taskRelatedContent\" at position 0 fails because [\"contentId\" is not allowed, \"lang\" is not allowed, \"displayName\" is not allowed, \"url\" is not allowed, \"mimeType\" is not allowed]]\n

    There is obviously something mighty obvious in here, that is causing this.
    Pulling my hairs to see what. Does anyone else see what I am doing wrong in here?

    Yoann MALLEMANCHE
    @YoannMa
    @Kottugumada which version of Joi are you using ?
    I have no issue with your schema on https://framp.me/joi-tester/
    Steven Leadbeater
    @stevenleadbeater
    Hello, A colleague and I are looking in to using Crumb with file uploads, however, as we are using streams that are being spooled out to a Java back end service, crumb is throwing a 403 due to payloads being instances of streams. Please see line 156: https://github.com/hapijs/crumb/blob/master/lib/index.js as the project we are working on mandates operation without JS, using the restful approach is not an option. How can we use crumb in this instance?
    Is there any reason why a stream should always be a 403? It seems as though the multi part form data handling here is incomplete right?
    BobbieBarker
    @BobbieBarker
    :wave: hey is this the place to ask for a 2nd set of eyes on what might be a joi bug/defect?
    Tõnis Ostrat
    @tonisostrat
    yeah
    devin ivy
    @devinivy
    there's also the hapi hour slack, which is a lot more active!
    there's a link there on https://hapijs.com
    A. Tate Barber
    @tatemz
    image.png
    Daniel Bretoi
    @danielb2

    we used to have style.md for the style guide. Now I can only find https://github.com/hapijs/eslint-plugin-hapi

    Is the style defined somewhere or is this what we have ?

    Yoann MALLEMANCHE
    @YoannMa
    I think it's this one https://github.com/hapijs/eslint-config-hapi
    But yes, that the style guideline it seems
    Ashish Modi
    @montumodi

    Can someone help me with this query?

    I have 1 route, 2 different joi schemas and I want to be able to dynamically select which schema I use based on a field in the payload.

    "One route, 2 schemas (Hapi.js with Joi)"

    So for context I have a hapi route and am using joi validation "someSchema" hapiRoute.js:

     "validate": {
            "payload": someSchema
     }

    In schema.js:

    function ChooseSchema(schemaA, schemaB) {
      return Joi.when(Joi.ref("payload.data.attributes.someField"), {
        "is": Joi.string().valid("fieldIsValue"),
        "then": schemaA,
        "otherwise": schemaB
      });
    }
    module.exports = {
       "someSchema": ChooseSchema(schemaA, schemaB)
    }

    Where schemaA & schemaB are different

    So I am trying to use "schemaA" if "someField" id equal to a value: "fieldIsValue", otherwise use schemaB. Currently it is not getting this value "someField", and so just returning schemaB I believe

    OR is it possible to set schema dynamically depending upon a value in a payload?
    devin ivy
    @devinivy
    @montumodi i think this looks pretty good! the only thing i think that needs fixing is that payload is actually part of joi validation "context" so it needs to be referenced like this: Joi.ref("$payload.data.attributes.someField")
    this also will only work if hapi's payload parsing hasn't been disabled.
    Jonas Scheffner
    @jscheffner
    Hey, I'm trying to strip certain fields from my response. That doesn't seem to have any effect. Is it possible I misunderstand the strip method?
      server.route({
        method: 'GET',
        path: '/foo/{id}',
        handler: (req, reply) => {
          server.methods.fooHandler(req.params.id)
        },
        config: {
          response: {
            status: {
              200: joi.object(
                _id: joi.string(),
                name: joi.string(),
                updatedAt: joi.strip(),
                createdAt: joi.strip(),
                __v: joi.strip()
              )
            },
          }
        }
      })
    Jonas Scheffner
    @jscheffner
    I'm using Joi v10.5.2
    Jonas Scheffner
    @jscheffner
    Apparently I need to set the modify option to true
    Lioxor64
    @lioxor64

    Hello, my name is Liora and I am currently hunting open source projects for company NeuraLegion (www.neuralegion.com)
    We just launched a free annual subscription for open source projects for our AIAST tool NexPloit.

    If you are interested, please, reach us on opensource@neuralegion.com!

    Thank you for your time and consideration! If you have any questions, please do not hesitate to contact us!

    Best,

    Ben Chiciudean
    @benydc
    with Joi, what can I use to filter props from objects? in Ruby on Rails, there is sequelize. I was thinking about using json-mask but maybe Joi has something similar already integrated?
    Tõnis Ostrat
    @tonisostrat
    @benydc, "filter" how? do you mean you want to remove them?
    @benydc, if so then this might help you: https://github.com/hapijs/joi/blob/master/API.md#anystrip
    Ben Chiciudean
    @benydc
    yes, but want to specify the opposite of strip, to show only those fields