HilarYo Posted April 12, 2018 at 11:32 PM Report #610205 Posted April 12, 2018 at 11:32 PM Boa noite, Por exemplo tenho a seguinte função: function updateUser(user_id, params) { const query = `UPDATE users SET user_name = $1, user_brithday = $2, user_active = $3 WHERE user_id = $4`; const queryParams = [ params.user_name, params.user_brithday, params.user_ative, user_id ]; return pg.query(query, queryParams); } O que queria fazer era o seguinte, passar o objecto "params", e por exemplo se uma das chaves for undefined, deixar o valor que lá está, se não substituir pelo novo valor. Estive a pesquisar e encontrei as Expressões condicionais, alguém que já trabalhou com isso que me pode ajudar a fazer esta verificação? Obrigado
iron Posted April 16, 2018 at 10:43 AM Report #610223 Posted April 16, 2018 at 10:43 AM function updateUser(user_id, params) { const paramsObj = [] const queryParams = []; for(var key : params){ if(params[key]){ paramsObj.push({ prop: key, value: params[key] }) queryParams.push(params[key]) } } queryParams.push(user_id) const query = 'UPDATE users SET ' for(let i = 0; i < paramsObj.length; ++i){ if(i > 0) query += ', ' query += obj.prop + ' = ' + obj.value } query += ' WHERE user_id = $' + queryParams.length return pg.query(query, queryParams); } Fiz isto assim de cabeça. É possivel que tenha algum erro. Mas podes tentar algo assim. Este código nao adiciona se for null ou undefined. Se quiseres apenas alterar o undefined, adiciona o " === undefined" ao primeiro if Cumprimentos, iron
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now