Domanda

Sto cercando di connetterti a un database su Azure utilizzando Node-MSSQL. Il mio sistema di sviluppo è Windows 7 e non ho avuto alcun successo con il nodo-sqlserver da installare tramite WebMatrix.

La mia domanda è due parte: in primo luogo c'è qualche motivo che anche quando seguo le istruzioni da Microsoft che ottengo errori con node-sqlserver? Provare l'approccio ingenuo usando NPM all'interno di Webmatrix ottengo il seguente errore:

An error occurred.

"C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "node-sqlserver" "--json"


Exit status 1

Failed at the node-sqlserver@0.1.0 install script.
This is most likely a problem with the node-sqlserver package,
not with npm itself.
Tell the author that this fails on your system:
    node-gyp rebuild
You can get their info via:
    npm owner ls node-sqlserver
There is likely additional logging output above.



Failed: npm reported an error.

NodeNpm.NpmException: Failed: npm reported an error.
   at NodeNpm.NpmApi.Install(INpmPackage package)
   at Microsoft.WebMatrix.NpmGallery.CachingPackageManger.InstallPackage(INpmPackage package)
   at Microsoft.WebMatrix.NpmGallery.PackageViewModel.Install()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
.

La macchina ha VS2012 Professional installato.

La seconda parte della mia domanda è, c'è qualche motivo per cui usare il nodo-mssql non funzionerà sotto Azure? Ho semplicemente un errore di connessione fallito, anche se ho verificato i dettagli più volte (segnaposto sostituiti per i valori effettivi sotto):

var config = {
  user: '{username}',
  password: '{password}',
  server: 'tcp:{server}.database.windows.net',
  database: '{database}'
}
.

ottengo il seguente errore:

.

{"Nome": "ConnectionError", "Messaggio": "Connessione a TCP: {Server} .dabase.windows.net: 1433> - Errore non riuscito: GetAddRinfo Enotfound"}

Mi rendo conto che Node-SQLServer è il modo migliore per farlo sotto Azure, ma ho provato per un paio di giorni senza successo. C'è qualcosa ovvio che mi manca?

È stato utile?

Soluzione

1) Puoi risolverlo scaricando il driver node-sqlserver precompilato da questo repo .Non sono stato in grado di compilare fonti sulla mia macchina anche con tutte le dipendenze Dev installate.

2) Il modulo node-mssql utilizza tre diversi driver per comunicare con SQL Server.La configurazione non specifica alcun driver, quindi viene utilizzato quello predefinito - Tedious.È necessario modificare la configurazione per farlo funzionare correttamente:

var config = {
    user: '{username}',
    password: '{password}',
    server: '{server}.database.windows.net', // simply remove "tcp:"
    database: '{database}'
}
.

C'è anche un'opzione da utilizzare node-mssql con node-sqlserver ma per farlo funzionare, è necessario installare manualmente il driver node-sqlserver compilato.Config dovrebbe assomigliare a questo:

var config = {
    driver: 'msnodesql',
    user: '{username}',
    password: '{password}',
    server: 'tcp:{server}.database.windows.net',
    database: '{database}'
}
.

Altri suggerimenti

Stavo usando SQL Azure da Node.js l'anno scorso quando il modulo è stato denominato node-sqlserver, quindi la mia risposta potrebbe non funzionare.

Ref Il primo problema, il nodo-MSSQL dovrebbe essere necessario compilare attraverso node-gyp e C++ durante l'installazione di NPM.Quindi faresti meglio a controllare se hai installato il compilatore C ++.Quando mi stavo installando, mi ha detto che ho bisogno di VS2010 C ++.Non sono sicuro se ne hai bisogno ora o qualsiasi versione successiva.È possibile eseguire npm install node-mssql dalla finestra di comando e dovresti ottenere un file di registro se non è riuscito, dovrebbe essere npm-error.log o qualcosa di simile.

Ref Il secondo problema, quando stavo usando questo modulo, uso la stringa di connessione.Potrebbe ricontrollare il tuo nome utente è stato specificato in formato user@server.Controlla anche se il tuo firewall SQL Azure è stato aperto per altri servizi cloud.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top