我开始用iisnode和expressjs做一些实验,用节点创建一个类似API的REST.
所以在server.js上我创建了类似的东西
app.put("/test", function(req, res){
...
});
Run Code Online (Sandbox Code Playgroud)
但是,当我执行PUT请求时,我405 Method not allowed从IIS 7.5安装中获得了一个.
关于如何解决这个问题的任何想法?
顺便说一句,我已经google了,并尝试在不同的处理程序映射中添加PUT动词,但没有成功......
我正在使用iisnode在Windows上的IIS中托管节点Web应用程序.当我在Web服务器上设置我的路由(比如Express或Restify)时,我希望以一种独立于IIS托管应用程序的路径的方式进行.
例如,我的应用程序可以在运行IIS的两台计算机上的两个不同路径上托管; 第一个可以/foo在第二个主持它/bar.假设我的应用程序想要/baz在第一台机器上设置路由,我需要在第二台机器上配置路由,/foo/baz在第二台机器上我必须使用/bar/baz这意味着复制IIS中保存的一些配置.
是否可以从使用iisnode托管的应用程序中可靠地计算出路径,以便我可以计算出要设置的正确路由?或者是否有其他技术可以避免需要这样做?
我确定这个问题已被问了一百万次,但我还没有找到解决以下问题的方法.
我有一个使用nodejs和express运行的基本应用程序.当我在节点中运行应用程序时,它默认将我发送到我公共文件夹中的index.html.即使我没有设置任何路线.我希望这发生.
我安装了iisnode并在'Default Website'下创建了一个名为'Devices'的新应用程序.我把我的申请保持不变.阅读我需要用web.config排序一些东西,并决定使用这里提到的配置(而不是yaml):
http://tomasz.janczuk.org/2012/05/yaml-configuration-support-in-iisnode.html
当我尝试在浏览器中加载应用程序时,它总是尝试在我的app.js中找到路径并向我发送消息,例如:
无法获取/设备/
我真的用这个把头发拉出来,不知道该怎么办!我是否必须在app.js入口点内为静态内容设置默认路由?我有以下内容:
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
Run Code Online (Sandbox Code Playgroud)
但是当我从它的根加载应用程序时,它仍然没有把我交给index.html:
的 'http://本地主机/设备/'
有人能帮我解决这个问题吗?
观看了关于同一问题的几个主题。没有一个对我有用。问题是:我有从 create-react-app 设计的 ReactJS + Redux 应用程序。实际上它可以工作,但是当应用程序冲浪以不同于 root 的 URL 开始时,会抛出 404。安装iisnode并尝试了网络中推荐的不同重写规则,但没有任何效果。最后是这个:
<rule name="Redirect HTTP to HTTPS">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent"/>
</rule> -->
<rule name="Redirect non-existent paths to root">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/initialLogin/*" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="/" appendQueryString="false" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
我唯一需要的是通过根 url 发送所有传入请求,并将其余地址传递给它,以便 SPA 可以正常工作。托管:AzureVM IIS:v10
编辑:另一个奇怪的事情是它iisnode可以处理 …