2017-10-26 9 views
0

最近nodejで作業を始めました。私はSQL Serverデータベースに接続して結果を返す単純なnodejs api(express付き)を作成しました。私の開発の後、私はこのノードjs apiをホストする方法に挑戦しました。 IISで私のapiをホストすることにしました。違うエラーがあり、結局私はそれを動作させることができました。インターネット上のさまざまな記事のおかげです。 以下は私が従った手順です。これは新しいもので、WindowsのIISでnodejsをホストしようとする人を助けることができるかもしれません。Expressでiisnodeを設定するには?

答えて

0

最近、nodejで作業を開始しました。私はSQL Serverデータベースに接続して結果を返す単純なnodejs api(express付き)を作成しました。私の開発の後、私はこのノードjs apiをホストする方法に挑戦しました。 IISで私のapiをホストすることにしました。違うエラーがあり、結局私はそれを動作させることができました。インターネット上のさまざまな記事のおかげです。 以下は私が従った手順です。これは新しいもので、WindowsのIISでnodejsをホストしようとする人を助けることができるかもしれません。

ステップ1:IISnodeをインストールします。お使いのマシンに応じて正しいビットバージョンを選択してください。私はWindows 10 64ビットを使用していました。私はiisnode-フルv0.2.21-x64.msiインストール https://github.com/azure/iisnode/wiki/iisnode-releases

ステップ2:インストールURL書き換えモジュール https://www.iis.net/downloads/microsoft/url-rewrite

ステップ3:私は名前の「ノードのWebでIISに新しいウェブサイトを作成し、私の使用についてサイト"。このサイトはポート90上で実行されています。このWebサイトにNodejs APIがある物理パスを指定します。

ステップ4: "IIS_IUSRS"グループへのノードjs apiフォルダアクセスを提供します。アクセスを提供しない場合は、アクセスエラーが発生します。

手順5:ノードjs apiフォルダにweb.configファイルを追加します。設定ファイルに以下のコードを追加してください。これにより、server.jsがIISnodeによって処理されることがIISに伝えられます。 注:プロジェクト(server.js)には1つのファイルしかありません。複数のファイルがある場合は、それらのファイルをすべてここに追加できます。

<configuration><system.webServer><handlers><add name="iisnode" path="server.js" verb="*" modules="iisnode" /></handlers>  
 
    </system.webServer></configuration>

ステップ6:あなたのconfigファイルでURL書き換えルールを追加します。これは、ユーザーフレンドリーなURLを作成するために必要です。それ以外の場合は、URLに.JSファイルパスを指定する必要があります。以下は私のアプリケーションで持っている最終的な設定ファイルです。リライトのセクションの前に私が書き換えURLの後にURL http://localhost/nodesample1/server.js

で自分のアプリケーションを呼び出した

<configuration> 
 
    <system.webServer> 
 

 
    <handlers> 
 
     <add name="iisnode" path="server.js" verb="*" modules="iisnode" /> 
 
    </handlers> 
 
    <rewrite> 
 
     <rules> 
 
     <rule name="api"> 
 
      <match url="api/*" /> 
 
      <action type="Rewrite" url="server.js" /> 
 
     </rule> 
 
     </rules> 
 
    </rewrite> 
 
\t 
 
\t <security> 
 
     <requestFiltering> 
 
     <hiddenSegments> 
 
      <add segment="node_modules" /> 
 
     </hiddenSegments> 
 
     </requestFiltering> 
 
    </security> 
 
    </system.webServer> 
 
</configuration>

http://localhost/nodesample1/api

ステップ7のようにすることができます:今、あなたのことを行う必要があり急行の呼び出しを変更する。 getコールでフルパスを提供する必要があります。IISNode私のデフォルトのget呼び出しコードでアプリケーションをホスティングする前に、例えば は、以下のスニペットのようだった

しかし

var express = require('express'); 
 
var bodyParser = require('body-parser'); 
 
var app = express(); 
 
app.use(bodyParser()); 
 
app.get('/', function (request, response) { 
 
    response.write('running'); 
 
    response.end(); 
 
});
IISNodeは私がように私のget呼び出しを変更しなければならなかったホスティング後、以下の

var express = require('express'); 
 
var bodyParser = require('body-parser'); 
 
var app = express(); 
 
app.use(bodyParser()); 
 
app.get('nodesample1/api', function (request, response) { 
 
    response.write('running'); 
 
    response.end(); 
 
});
私が私に「 http://localhost/nodesample1/api」のようなURLを与えたいと思ったら、私はgeで完全なパスを提供しなければならなかったtコール。

これだけです。

このアプローチは私のために働いた。

関連する問題