2017-12-11 19 views
0

私はnode.jsを初めて使用しています。次のコードを使用して、私はwesbite intrinoからコンソールにデータを取得できます。次のようにnodejsコンソールからSQL Serverにデータを移動する

var https = require("https"); 

var username = "********"; 
var password = "********"; 
var auth = "Basic " + new Buffer(username + ':' + 
password).toString('base64'); 

var request = https.request({ 
method: "GET", 
host: "api.intrinio.com", 
path: "/companies?ticker=AAPL", 
headers: { 
    "Authorization": auth 
} 
}, function (response) { 
var json = ""; 
response.on('data', function (chunk) { 
    json += chunk; 
}); 
response.on('end', function() { 
    var company = JSON.parse(json); 
    console.log(company); 
}); 
}); 

request.end(); 

そして結果は次のとおりです。 -

Retrieved data

私の質問は:私は、SQL Serverにこのデータを転送する方法を教えてください。私はいくつかのチュートリアルやビデオを見てみました。しかし、私はそれがどのように機能するかを正確に理解することができませんでした。

ありがとうございます。

答えて

0

これは非常に広い質問です。ノードからMS-SQLサーバーを接続するには通常tediousパッケージを使用します。このパッケージを直接使用して、https://docs.microsoft.com/en-us/sql/connect/node-js/step-3-proof-of-concept-connecting-to-sql-using-node-jsのようにデータを挿入することができます

以下は、上記のリンクからのスニペットです。

var Connection = require('tedious').Connection; 
    var config = { 
     userName: 'yourusername', 
     password: 'yourpassword', 
     server: 'yourserver.database.windows.net', 
     // If you are on 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"); 
     executeStatement1(); 
    }); 

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

    function executeStatement1() { 
     request = new Request("INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.ProductID VALUES (@Name, @Number, @Cost, @Price, CURRENT_TIMESTAMP);", function(err) { 
     if (err) { 
      console.log(err);} 
     }); 
     request.addParameter('Name', TYPES.NVarChar,'SQL Server Express 2014'); 
     request.addParameter('Number', TYPES.NVarChar , 'SQLEXPRESS2014'); 
     request.addParameter('Cost', TYPES.Int, 11); 
     request.addParameter('Price', TYPES.Int,11); 
     request.on('row', function(columns) { 
      columns.forEach(function(column) { 
       if (column.value === null) { 
       console.log('NULL'); 
       } else { 
       console.log("Product id of inserted item is " + column.value); 
       } 
      }); 
     });  
     connection.execSql(request); 
    } 

しかし、ORMを使用することがベストプラクティスです。 sequelizeは、ノードのコミュニティで最高のものの1つです。

$ npm install --save sequelize 
$ npm install --save tedious // MSSQL 

const Sequelize = require('sequelize'); 
const sequelize = new Sequelize('database', 'username', 'password', { 
    host: 'localhost', 
    dialect: 'mssql' 
}); 

あなたはこれらのモジュールのいずれかのドキュメントを読んで理解しておく必要があります。

関連する問題