在尝试为“新用户”插入信息之前,检查用户是否已经在db中的实用方法是什么?
下面是get用户的id和insert函数:
const getUserById = (request, response) => {
const id = parseInt(request.params.attuid)
pg.query('SELECT * FROM geodate.users WHERE attuid = $1', [attuid], (err, res) => {
if (err) {
return next(err)
}
response.status(200).json(results.rows)
})
}
const createUser = (request, response) => {
const attuid = request.body[0].attuid
pg.query('INSERT INTO geodata.users (attuid, num_queries,created_date,modified_date) VALUES ($1,$2,$3,$4) RETURNING *', [attuid, 0, moment(new Date()), moment(new Date())], (error, results) => {
if (error) {
throw error
}
response.status(201).send(`User added with ID: ${results.rows[0].attuid}`)
})
}谢谢
发布于 2020-05-15 21:31:31
rf家伙,不错的色调。首先从geodata.users表中选择用户。如果存在该用户,则不应添加该用户。我不使用pg查询postgres,所以我真的不知道它是如何工作的,但是您应该能够这样做:
const createUser = (request, response) => { const attuid = request.body[0].attuid
pg.query('SELECT * FROM geodate.users WHERE attuid = $1', [attuid], (err, res)=> {
if (err) {
return next(err)
}
if(results.rows > 0)
{
pg.query('INSERT INTO geodata.users (attuid, num_queries,created_date,modified_date) VALUES ($1,$2,$3,$4) RETURNING
*', [attuid, 0, moment(new Date()), moment(new Date())], (error, results) => {
if (error) {
throw error
}
response.status(201).send(`User added with ID: ${results.rows[0].attuid}`)
})
}
else{
response.status(200).json({"message": "Ha! you are already in the db, silly"})
} }) }https://stackoverflow.com/questions/61828378
复制相似问题