如何通过 cmd 直接调用函数以通过 Node js 获取和更新记录到数据库中

问题描述

我有一个文件 CreateNewUserID.js,其代码如下。

        const Connection = require('./database/Connection')

const createNewUserID = async(connData,userId) => {
    try{
         var getConn = await Connection.get().getConn();
         const query = `exec BaseDB.get_client_info`
         var clientusers = await getConn.query(query);
        
        var getConn1 = await Connection.get().getConnection(connData)
        var res = await getConn1.execute('BaseDB.get_all_existing_users');
        res.recordsets[1].map(async (val) => {
            try{
                var newid = val.id+'NEWID';
                var getConn2 = await Connection.get().getConnection(connData)
                getConn2.input('userid',userid)
                getConn2.input('updatedid',newid)
                var res2 = await getConn2.execute(`BaseDB.update_users_with_newid`)
            } catch (err) {
                console.log(err)
                return { err,message: 'First DB Connection' }
            }
        })
    } catch (err) {
        console.log(err)
        return { err,message: 'Second DB Connection' }
    }
}

const connData = {
    "clientuserid": "12345"
}

createNewUserID(connData)

此外,我有一个 Connection.js,我在其中进行了基本数据库和客户端 DB 的数据库连接配置。客户端 DB 数据库将是动态的。所以,现在我通过常量 connData 传递数据库名称。我已经在 CreateNewUserID.js 的同一个文件中定义了 connData。

我的 Connection.js 如下:

    const sql = require('mssql')
class Connection {

    // CONNECTION CONfigURATION OF CLIENT DB
    getConnection = async (conData) => {
        const connData = JSON.parse(conData)
        try {
            // sql.close();
            const config = {
                user: process.env.sql_USER,password: process.env.sql_PASSWORD,server: process.env.sql_SERVER,database: connData.clientuserid
            }
            const pool = await new sql.ConnectionPool(config)
            const req=await pool.connect()
            const conn = await req.request()

            // const req = await sql.connect(config)
            // const conn = await req.request()
            return conn;
        } catch (err) {
            return err;
        }
    };
    // CONNECTION CONfigURATION OF BASE DB
    getConn = async () => {
        try {
            // sql.close();
            const config = {
                user: process.env.sql_USER,database: process.env.sql_DATABASE
            }
            const pool = await new sql.ConnectionPool(config)
            const req=await pool.connect()
            const conn = await req.request()
            // const req = await sql.connect(config)
            // const conn = await req.request()
            return conn;
        } catch (err) {
            return err;
        }
    };


}
Connection.__instance = null;
Connection.get = () => {
    if (!Connection.__instance) {
        Connection.__instance = new Connection();
    }
    return Connection.__instance;
};
module.exports = Connection;

当我尝试使用命令 node CreateNewUserID.js 通过 CMD 运行文件时,我在第一次使用消息 unexpected token 0 in json at position 1 时收到错误"First DB connection"

为什么会出现错误以及如何解决。请帮忙。提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)