I'm trying to get the user id by calling function getUser from my user route but I get undefined. I try to understand what is the root cause of that. Attaching the code:
router.post('/users', async(req,res)=>{
console.log(req.body);
const userId = req.body.id;
try{
var user = await gs.getUser(userId);
console.log('From user ' + user);
res.status(201).send(user);
}catch(error){
console.log('In error');
res.status(400).send(error);
}
})
The getUser function receives the userid in order to find if the user exists.
async function getUser(id){//user sheet by id
const client = new google.auth.JWT(
keys.client_email,
null,
keys.private_key,
['https://www.googleapis.com/auth/spreadsheets']
);
const sheets = google.sheets({version:'v4', auth:client});
await sheets.spreadsheets.values.get({
spreadsheetId:'1K1U4Y7SgS97SaHMrWJUGZOiUlh51tbMPZTAPPe-SNCg',
range:'Data!A2:B4'
}, (err,res)=>{
if(err){
console.log(err);
return;
}
else{
const users = res.data.values
let user= undefined;
users.map(item=>{
if(item[0] === id){
user = item[0];
//console.log(user);
return user;
}
})
if(!user){
//console.log(user);
//console.log('Not found');
return false;
}
}
})
}
If your are using googleapis package, try this:
async function getUser(id) {
const client = new google.auth.JWT(
keys.client_email,
null,
keys.private_key,
['https://www.googleapis.com/auth/spreadsheets']
);
const sheets = google.sheets({version:'v4', auth:client});
try {
const response = await sheets.spreadsheets.values.get({
spreadsheetId:'1K1U4Y7SgS97SaHMrWJUGZOiUlh51tbMPZTAPPe-SNCg',
range:'Data!A2:B4'
});
const users = response.data.values
let user = users.find(item => item[0] === id);
if(!user) {
return false;
}
return user;
} catch (e) {
console.log(err);
return;
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.