Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Rico Chen
    @midnightcodr
    Sorry for the typo. @dankell As long you register your plugins with await you should be good to use them anywhere you have access to request
    AmirHosein Bahrami
    @woxman
    hi
    I have a question
    Yoann MALLEMANCHE
    @YoannMa
    sure go ahead
    Dan Kelly
    @dankell
    @midnightcodr thanks. Only just saw your answer. We're happily accessing the MySQL database on requests. Specific Issue was that the old version of backend (Hapi 16) was calling the database as part of the sever startup - i.e. before request. We've rewritten that part.
    Ben Chiciudean
    @benydc
    anyone using Boom for errors?
    Tõnis Ostrat
    @tonisostrat
    yup
    Yoann MALLEMANCHE
    @YoannMa
    a lot of people do
    as it's an hapi default
    Ben Chiciudean
    @benydc
    does Boom inherit from global Error and can I store it reference in variable? like so:
    const authError = Boom.unauthorized(
            'Authentication error or invalid token'
          );
    Yoann MALLEMANCHE
    @YoannMa
    Boom extend Error yes
    and yes you should be able to create a Boom before throwing it, you just can't use the new keyword
    José Santos Martins Pereira
    @jsmpereira
    Good evening.
    I haven't been able to find anything related to Joi references not resolving in route config validation, so I thought I'd try and ask here.
        config: {
          validate: {
            params: { id: Joi.string().valid(Joi.ref('$auth.credentials.sub')) }
          }
        },
    I get message: '"id" must be one of [context:auth.credentials.sub]',
    Is this expected behaviour or am I going about it wrong? Thank you.
    Tõnis Ostrat
    @tonisostrat
    where is $auth defined? from what i remember joi.ref() can only reference the same object's siblings and their children so does your params contain auth?
    Yoann MALLEMANCHE
    @YoannMa
    No, @jsmpereira is trying to use the context given to joi validation : https://github.com/hapijs/hapi/blob/master/API.md#-routeoptionsvalidateoptions
    Tõnis Ostrat
    @tonisostrat
    woops, my bad.
    José Santos Martins Pereira
    @jsmpereira
    Indeed ;) I'm on Hapi v16.7.0 btw.
    José Santos Martins Pereira
    @jsmpereira
    I'm thinking actually that this might be expected behaviour? In line with Hapi not leaking error info and indeed looks like something that points the developer to the issue and they should just handle the error in a more friendly way if wanted.
    Shubham Verma
    @codershubhamverma
    Hi All, I am new in hapi and setting up the socket.io with this I am getting error while importing socket.io module and passsing server instance of hapi

    this._path = v.replace(/\/$/, '');
    ^

    TypeError: v.replace is not a function

    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?