如何在iisnode中托pipe服务和静态内容

我有我的网站快速工作。 但是现在我需要在IIS上托pipe它。 如何让我的路由与IISNode一起工作?

我能够将我的静态内容移动到/公共文件夹(html,前端js等)。 我不想这样做,但得到了这部分工作。

我将我的服务器端逻辑移至/ server。

我以前有.Net Web API风格路由工作,我的服务在/ api托pipe。 我将这些移动到/ server / api。

每当我尝试请求我的API,我得到一个404。我怎样才能得到这个IISNode的工作?

app.use("/api", require("./api")); // routes/api/index.js var router = require('express').Router(); router.use('/questionsets', require('./questionsets')); module.exports = router; var router = require('express').Router(); router.use('/questionsets', require('./questionsets.js')); module.exports = router; // routes/api/questions.js var router = require('express').Router(); router.get('/', function (req, res) { ... }); router.get('/:id', function (req, res) { ... }); module.exports = router; <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <security> <requestFiltering> <hiddenSegments> <remove segment="bin" /> </hiddenSegments> </requestFiltering> </security> <handlers> <add name="iisnode" path="bin/www" verb="*" modules="iisnode" /> </handlers> <iisnode loggingEnabled="false" /> <httpErrors errorMode="Detailed" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="/" responseMode="ExecuteURL" /> </httpErrors> <rewrite> <rules> <rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true"> <match url="iisnode" /> </rule> <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true"> <match url="^bin\/www\/debug[\/]?" /> </rule> <rule name="StaticContent" patternSyntax="ECMAScript" stopProcessing="true"> <match url=".*" /> <action type="Rewrite" url="{C:1}" logRewrittenUrl="true" /> <conditions> <add input="{REQUEST_URI}" pattern=".*?\/(.*)" /> </conditions> </rule> <rule name="DynamicContent" patternSyntax="ECMAScript"> <match url=".*" /> <conditions> <add input="{{REQUEST_FILENAME}}" matchType="IsFile" negate="True" /> </conditions> <action type="Rewrite" url="server/app.js" logRewrittenUrl="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration> 

url重写configuration的来源

您需要在此处安装应用程序请求路由,并在此处安装文档。

简单地把你的服务器端文件放在/ server下是行不通的。 启动你的快递服务器,假设听取http:// localhost:3200 / ,路由请求'/'到'本地主机:3200'将路由每个请求到您的快递服务器。