Что является эквивалентом node.js этого запроса T-SQL

Устаревшая система, используемая для хранения паролей в формате вывода запроса,

SELECT
    HASHBYTES('SHA1', CONVERT(VARCHAR, HASHBYTES('SHA1', CONVERT(NVARCHAR(4000), ’test'))) + 'mysalt')

где пароль test а также mysalt соль используется

Результат что-то вроде

0x169A0EF01AA369518D6810E14872A3A003A1F0AA

Я должен взять этот зашифрованный пароль и создать функцию узла, чтобы получить тот же результат, что и вышеупомянутый запрос

1 ответ

Решение

Node.js не собирается заменять запрос t-sql. Вы бы все равно использовали t-sql для запроса вашей базы данных и чего-то вроде tedious Модуль подключения к базе данных. Это пример из https://msdn.microsoft.com/library/mt715784.aspx того, как подключиться из node.js к SQL Server и выполнить запрос. Некоторые модификации executeStatement функция поможет вам.

var Connection = require('tedious').Connection;  
    var config = {  
        userName: 'yourusername',  
        password: 'yourpassword',  
        server: 'yourserver.database.windows.net',  
        // When you connect to Azure SQL Database, you need these next options.  
        options: {encrypt: true, database: 'AdventureWorks'}  
    };  
    var connection = new Connection(config);  
    connection.on('connect', function(err) {  
        // If no error, then good to proceed.  
        console.log("Connected");  
        executeStatement();  
    });  

    var Request = require('tedious').Request;  
    var TYPES = require('tedious').TYPES;  

    function executeStatement() {  
        request = new Request("SELECT c.CustomerID, c.CompanyName,COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC;", function(err) {  
        if (err) {  
            console.log(err);}  
        });  
        var result = "";  
        request.on('row', function(columns) {  
            columns.forEach(function(column) {  
              if (column.value === null) {  
                console.log('NULL');  
              } else {  
                result+= column.value + " ";  
              }  
            });  
            console.log(result);  
            result ="";  
        });  

        request.on('done', function(rowCount, more) {  
        console.log(rowCount + ' rows returned');  
        });  
        connection.execSql(request);  
    }
Другие вопросы по тегам