我正在嘗試創建一個函式來檢查資料庫中是否已存在表,如果不存在,則創建一個但問題是 If 不等待 checkTableExist()
const checkTableExist = async () => {
console.log('starting check')
db.query(`SELECT column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'users'`, async (error, results) => {
if (error) {
console.log(error)
}
if (results !== null) {
console.log('Not exist')
return true
}
console.log('Exist')
return false
})
}
const createTable = async () => {
await db.connect();
if (await checkTableExist() !== true) {
console.log('Creating Table')
await db.query(`CREATE TABLE users (
id SERIAL PRIMARY KEY,
name varchar(100),
email varchar(100),
celular varchar(11),
password varchar(255),
validated boolean
)`)
db.end()
return
}
db.end()
console.log('Table already exist')
return
}
createTable()
控制臺日志
starting check
Creating Table
Not exist
uj5u.com熱心網友回復:
在checkTableExist您使用回呼函式檢查資料庫查詢結果時。在那里,當你return,你實際上并沒有回傳到createTable函式,你回到了checkTableExist.
如果您使用await,您return的 s 應該可以正常作業:
const checkTableExist = async () => {
console.log('starting check')
const results = await db.query(`SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'users'`);
if (results !== null) {
console.log('Not exist')
return true
}
console.log('Exist')
return false
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/475863.html
標籤:javascript sql 节点.js PostgreSQL
上一篇:如何檢查陣列是否包含給定元素
