簡體   English   中英

為什么這個打字稿程序永無止境?

[英]Why is this typescript program never ending?

我在打字稿中為 oclif 編寫了這個登錄命令 (Login.ts)。 它應該在cli的登錄命令中獲取一些信息,然后使用jwt創建一個令牌並將其寫入文件中。

import Command from '@oclif/command'
import axios from 'axios'
import {flags} from  '@oclif/command'
const bcrypt = require('bcrypt');
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
export class LoginCommand extends Command {
  static flags = { 
    user: flags.string({dependsOn:['passw']}),
    //email: flags.string({dependsOn:['passw'],exlucsive:['user']}),
    passw: flags.string()
  }

  async run() {
        const {flags} = this.parse(LoginCommand); 
        var mysql=require('mysql')
        var connection=mysql.createConnection({
            host: 'localhost',
            user: 'root',
            password: 'Vangelis98!',
            database: 'vag'
        });
        await connection.query(`SELECT user,pass,email,quotas FROM users WHERE user=?`,[`${flags.user}`], function (err, result, fields) {
                if (err) throw err;
                console.log(`${flags.user}`);
                console.log(result[0].pass);
                const password=result[0].pass;
                if(bcrypt.compareSync(`${flags.passw}`, password)) {
                    var fs=require('fs');
                    var privateKey = fs.readFileSync('private.key');
                    var jwt=require('jsonwebtoken');
                    var token = jwt.sign({user:`${flags.user}`,passw:`${flags.passw}`}, privateKey, { algorithm: 'RS256' });
                    fs.writeFileSync("temptoken.txt",token);
                } else {
                    console.log("Wrong username or password\n");
                }       
         });

  }
}

我正在運行這樣的命令文件:

energy Login --user afro --passw whatever12

它運行正常,但它永遠不會終止,為什么? 我怎樣才能解決這個問題?

我的猜測是數據庫連接沒有關閉,因此程序不會終止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM