javascript - 为什么这个打字稿程序永无止境?
问题描述
我已经在 typescript 中为 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
它运行正确,但它永远不会终止,为什么?我怎样才能解决这个问题?
解决方案
我的猜测是数据库连接没有关闭,因此程序不会终止。
推荐阅读
- android - 如何将自定义字体应用于xamarin android中的导航抽屉项目
- java - JPA 连接表查询
- android - Progressbar - 进度结束边框
- javascript - 对象的数字属性在Angular2中转换为字符串
- vba - VBA更新文件夹内的共享点列表
- node.js - Artillery JavaScript 堆内存不足
- java - 自定义 EventListener 检查类覆盖的抽象方法
- mysql - MySQL:行连接
- python - 大熊猫在大熊猫的两列之间找到共同值的索引
- sql - 触发器函数(INSTEAD OF DELETE ON 视图)无法从查询 [POSTGRESQL] 中选择值