71 votes

Node.js et Microsoft SQL Server

Est-il possible que mon application Node.js puisse communiquer avec Microsoft SQL? Je n'ai jamais vu de pilotes MS SQL à l'état sauvage?

Je suis en train de mettre une application très simple ensemble et j'ai besoin de pouvoir communiquer avec une base de données MS SQL existante (sinon, je serais allé avec mongoDB ou Redis)

58voto

La question d'origine est ancienne et maintenant, à l'aide de nœud-mssql comme répondu par @Patrik Šimek qui encapsule Fastidieux comme répondu par @Tracker1 est la meilleure façon d'aller.

La Windows/Azure nœud-sqlserver pilote comme mentionné dans l'acceptation de réponse nécessite l'installation d'un fou de la liste de conditions préalables: Visual C++ 2010, SQL Server Native Client 11.0, python 2.7.x et probablement aussi Windows 7 SDK pour 64-bit sur votre serveur. Vous ne souhaitez pas installer tous ces GO de logiciel sur votre ordinateur Windows Server si vous me demandez.

Vous voulez vraiment utiliser Fastidieux. Mais aussi l'utilisation de nœud-mssql pour l'envelopper et faire le codage d'un beaucoup plus facile.

Mise à jour août 2014:

  • Les deux modules sont toujours activement maintenu. Les questions sont a répondu très rapidement et efficacement.
  • Les deux modules en charge de SQL Server 2000 - 2014
  • Streaming en charge depuis le nœud-mssql 1.0.1

C'est simple, clair Fastidieux:

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

var config = {
  server: '192.168.1.212',
  userName: 'test',
  password: 'test'
};

var connection = new Connection(config);

connection.on('connect', function(err) {
    executeStatement();
  }
);

function executeStatement() {
  request = new Request("select 42, 'hello world'", function(err, rowCount) {
    if (err) {
      console.log(err);
    } else {
      console.log(rowCount + ' rows');
    }

    connection.close();
  });

  request.on('row', function(columns) {
    columns.forEach(function(column) {
      if (column.value === null) {
        console.log('NULL');
      } else {
        console.log(column.value);
      }
    });
  });

  request.on('done', function(rowCount, more) {
    console.log(rowCount + ' rows returned');
  });

  // In SQL Server 2000 you may need: connection.execSqlBatch(request);
  connection.execSql(request);
}

Voici nœud-mssql qui est Pénible car une dépendance. L'utilisation de ce!

var sql     = require('mssql');

var config = {
  server: '192.168.1.212',
  user:     'test',
  password: 'test'
};

sql.connect(config, function(err) {
    var request = new sql.Request();
    request.query("select 42, 'hello world'", function(err, recordset) {
        console.log(recordset);
    });
});

23voto

Chad Retz Points 610

Deux nouveaux clients de serveur SQL node.js viennent de paraître. J'ai écrit un appelé noeud-tds et il y a un autre appelé fastidieux

22voto

kop48 Points 437

Nous venons de publier des pilotes de prévisualisation pour Node.JS pour la connectivité SQL Server. Vous pouvez les trouver ici: http://blogs.msdn.com/b/sqlphp/archive/2012/06/08/introducing-the-microsoft-driver-for-node-js-for-sql-server.aspx

9voto

John Boker Points 36308

Vous pourriez peut-être utiliser https://github.com/orenmazor/node-tds

9voto

Patrik Šimek Points 181

Il y a un autre module, vous pouvez utiliser - nœud-mssql. Il utilise d'autres TDS modules de pilotes et facile à utiliser interface unifiée. Il également ajouter des fonctionnalités et corrections de bugs.

Fonctionnalités supplémentaires:

  • Unifiée facile à comprendre API qui vous permet d'économiser beaucoup de lignes de code
  • Le regroupement de connexion avec prise en charge des Transactions
  • La sérialisation de la Géographie et de la Géométrie types CLR
  • Soutien pour la création de la Table de Paramètres de Valeur (SQLDbType.Structuré)
  • Smart JS type de données type de données SQL mappeur

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X