gpt4 book ai didi

javascript - 在应用程序启动脚本中使用异步不返回任何结果

转载 作者:IT老高 更新时间:2023-10-28 23:20:38 26 4
gpt4 key购买 nike

我正在尝试在我的 Node 应用程序中运行以下脚本来检查是否存在任何用户,如果不存在,则创建第一个管理员用户。然而脚本什么也不做,即使在使用 Try/Catch 时也不返回任何内容,所以有人可以告诉我我在这里错过了什么/做错了什么吗?或者我怎么可能捕捉到错误(如果有的话)?谢谢

import pmongo from 'promised-mongo';
import crypto from 'crypto';

const salt = 'DuCDuUR8yvttLU7Cc4';

const MONGODB_URI = 'mongodb://localhost:27017/mydb';

const db = pmongo(MONGODB_URI, {
authMechanism: 'ScramSHA1'
}, ['users']);


async function firstRunCheckAndCreateSuperAdmin(cb) {

const username = 'admin2@test2.com';

try {
const user = await db.users.findOne({ role: 'admin'});
console.log(user);
if(!user) return cb('No user found');
} catch(e) {
cb('Unexpected error occurred');
}

if(!user) {
console.log('No admin detected.');

const adminPassword = crypto.pbkdf2Sync ( 'password', salt, 10000, 512, 'sha512' ).toString ( 'hex' );
await db.users.update({username: username}, {$set: {username: username, password: adminPassword, role: 'admin'}}, {upsert: true});
}

db.close();
process.exit();
}

firstRunCheckAndCreateSuperAdmin(function(err, resultA){
if(err) console.log(err);
});

最佳答案

当以下代码片段中没有管理员用户时,您不会返回任何回调

if (!user) {
console.log('No admin detected.');

const adminPassword = crypto.pbkdf2Sync ( 'password', salt, 10000, 512, 'sha512' ).toString ( 'hex' );
await db.users.update({username: username}, {$set: {username: username, password: adminPassword, role: 'admin'}}, {upsert: true});

// call cb(user) here
}

关于javascript - 在应用程序启动脚本中使用异步不返回任何结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45020027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com