Specifica di una versione di Node.js in un'applicazione AzureSpecifying a Node.js version in an Azure application

Quando si ospita un'applicazione Node.js, può essere necessario assicurarsi che utilizzi una versione specifica di Node.js.When hosting a Node.js application, you may want to ensure that your application uses a specific version of Node.js. Questa operazione può essere eseguita in vari modi per le applicazioni ospitate in Azure.There are several ways to accomplish this for applications hosted on Azure.

Versioni predefiniteDefault versions

Le versioni di Node.js fornite da Azure vengono aggiornate costantemente.The Node.js versions provided by Azure are constantly updated. Se non diversamente specificato, verrà usata la versione predefinita specificata nella variabile di ambiente WEBSITE_NODE_DEFAULT_VERSION .Unless otherwise specified, the default version that is specified in the WEBSITE_NODE_DEFAULT_VERSION environment variable will be used. Per eseguire l'override di questo valore predefinito, seguire i passaggi disponibili nelle sezioni seguenti di questo articolo.To override this default value, follow the steps in following sections of this article

Nota

Se l'applicazione è ospitata in un servizio cloud di Azure (ruolo di lavoro o Web) ed è la prima volta che si distribuisce l'applicazione, Azure tenterà di usare la stessa versione di Node.js installata nell'ambiente di sviluppo, se questa corrisponde a une delle versioni predefinite disponibili.If you are hosting your application in an Azure Cloud Service (web or worker role,) and it is the first time you have deployed the application, Azure will attempt to use the same version of Node.js as you have installed on your development environment if it matches one of the default versions available on Azure.

Controllo delle versioni con package.jsonVersioning with package.json

È possibile specificare la versione di Node.js da usare aggiungendo il codice seguente al file package.json :You can specify the version of Node.js to be used by adding the following to your package.json file:

"engines":{"node":version}

Dove version è lo specifico numero di versione da usare.Where version is the specific version number to use. È possibile specificare condizioni più complesse per la versione, ad esempio:You can specify more complex conditions for version, such as:

"engines":{"node": "0.6.22 || 0.8.x"}

Poiché la 0.6.22 non è una delle versioni disponibili nell'ambiente host, verrà utilizzata la versione più recente della serie 0.8 disponibile, ovvero la 0.8.4.Since 0.6.22 is not one of the versions available in the hosting environment, the highest version of the 0.8 series that is available will be used instead - 0.8.4.

Controllo delle versioni di Siti Web con Impostazioni appVersioning Websites with App Settings

Se si ospita l'applicazione in un sito Web, è possibile impostare la variabile di ambiente WEBSITE_NODE_DEFAULT_VERSION sulla versione desiderata.If you are hosting the application in a Website, you can set the environment variable WEBSITE_NODE_DEFAULT_VERSION to the desired version.

Controllo delle versioni dei servizi cloud con PowerShellVersioning Cloud Services with PowerShell

Se l'applicazione è ospitata in un servizio cloud e si sta distribuendo l'applicazione utilizzando Azure PowerShell, è possibile sostituire la versione predefinita di Node.js utilizzando il cmdlet di PowerShell Set-AzureServiceProjectRole .If you are hosting the application in a Cloud Service, and are deploying the application using Azure PowerShell, you can override the default Node.js version by using the Set-AzureServiceProjectRole PowerShell cmdlet. Ad esempio:For example:

Set-AzureServiceProjectRole WebRole1 Node 0.8.4

Si noti che i parametri nell'istruzione precedente fanno la distinzione tra maiuscole e minuscole.Note the parameters in the above statement are case-sensitive. È possibile verificare di aver selezionato la versione corretta di Node.js controllando la proprietà engines nel package.json del ruolo.You can verify the correct version of Node.js has been selected by checking the engines property in your role's package.json.

È inoltre possibile usare Get-AzureServiceProjectRoleRuntime per recuperare un elenco delle versioni di Node.js disponibili per le applicazioni ospitate come servizi cloud.You can also use the Get-AzureServiceProjectRoleRuntime to retrieve a list of Node.js versions available for applications hosted as a Cloud Service. Verificare sempre che la versione di Node. js dipenda da se il progetto è incluso nell'elenco.Always verify the version of Node.js your project depends on is in this list.

Uso di una versione personalizzata con i siti Web di AzureUsing a custom version with Azure Websites

Anche se in Azure sono disponibili svariate versioni predefinite di Node.js, potrebbe essere necessario utilizzare una versione non disponibile per impostazione predefinita.While Azure provides several default versions of Node.js, you may want to use a version that is not provided by default. Se l'applicazione è ospitata come sito Web di Azure, è possibile eseguire l'operazione usando il file iisnode.yml .If your application is hosted as an Azure Website, you can accomplish this by using the iisnode.yml file. I passaggi successivi illustrano la procedura per l'uso di una versione personalizzata di Node.Js con un sito Web di Azure:The following steps walk through the process of using a custom version of Node.Js with an Azure Website:

  1. Creare una nuova directory e quindi creare un file server.js al suo interno.Create a new directory, and then create a server.js file within the directory. Il contenuto del file deve essere il seguente server.js :The server.js file should contain the following:

     var http = require('http');
     http.createServer(function(req,res) {
       res.writeHead(200, {'Content-Type': 'text/html'});
       res.end('Hello from Azure running node version: ' + process.version + '</br>');
     }).listen(process.env.PORT || 3000);
    

    Questo consentirà di visualizzare la versione di Node.js utilizzata durante l'esplorazione del sito Web.This will display the Node.js version being used when you browse the website.

  2. Creare un nuovo sito Web e prendere nota del nome del sito.Create a new Website and note the name of the site. Nel comando seguente, ad esempio, gli strumenti da riga di comando di Azure vengono utilizzati per creare un nuovo sito Web di Azure denominato mywebsitee quindi per abilitare un repository Git per il sito Web.For example, the following uses the [Azure Command-line tools] to create a new Azure Website named mywebsite, and then enable a Git repository for the website.

     azure site create mywebsite --git
    
  3. Creare una nuova directory denominata bin come figlio della directory che contiene il file server.js.Create a new directory named bin as a child of the directory containing the server.js file.
  4. Scaricare la specifica versione di node.exe (per Windows) che si desidera utilizzare con l'applicazione.Download the specific version of node.exe (the Windows version) that you wish to use with your application. Nell'esempio seguente viene usato curl per scaricare la versione 0.8.1:For example, the following uses curl to download version 0.8.1:

     curl -O http://nodejs.org/dist/v0.8.1/node.exe
    

    Salvare il file node.exe nella cartella bin creata in precedenza.Save the node.exe file into the bin folder created previously.

  5. Creare un file iisnode.yml nella stessa directory del file server.js e quindi aggiungere il contenuto seguente al file iisnode.yml:Create an iisnode.yml file in the same directory as the server.js file, and then add the following content to the iisnode.yml file:

     nodeProcessCommandLine: "D:\home\site\wwwroot\bin\node.exe"
    

    Questo percorso corrisponde alla posizione in cui sarà situato il file node.exe all'interno del progetto dopo la pubblicazione dell'applicazione nel sito Web di Azure.This path is where the node.exe file within your project will be located once you have published your application to the Azure Website.

  6. Pubblicare l'applicazione.Publish your application. Ad esempio, poiché in precedenza è stato creato un nuovo sito Web con il parametro --git, i comandi seguenti consentiranno di aggiungere i file dell'applicazione al repository Git locale e quindi di effettuarne il push nel repository del sito Web:For example, since I created a new website with the --git parameter earlier, the following commands will add the application files to my local Git repository, and then push them to the website repository:

     git add .
     git commit -m "testing node v0.8.1"
     git push azure master
    

    Dopo la pubblicazione dell'applicazione, aprire il sito Web in un browser.After the application has published, open the website in a browser. Dovrebbe essere visualizzato il messaggio "Hello from Azure running node version: v0.8.1".You should see a message stating "Hello from Azure running node version: v0.8.1".

Passaggi successiviNext Steps

Dopo avere appreso come specificare la versione di Node.js usata dall'applicazione, per altre informazioni vedere gli articoli che illustrano come usare i moduli, creare e distribuire un sito Web Node.js e usare gli strumenti da riga di comando di Azure per Mac e Linux.Now that you understand how to specify the version of Node.js used by your application, learn how to [work with modules], build and deploy a Node.js Web Site, and [How to use the Azure Command-Line Tools for Mac and Linux].

Per ulteriori informazioni, vedere il Centro per sviluppatori di Node.js.For more information, see the Node.js Developer Center.