gpt4 book ai didi

node.js - 尝试从应用程序服务中的子目录运行 Node 应用程序提供 server.js 文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:49:23 25 4
gpt4 key购买 nike

我在尝试在 Azure 应用服务的子目录中运行 Node 应用程序时遇到一个奇怪的问题。

我的目录结构是:

|common
-- common_model.js
|client
-- angular 2 app js files
|server
-- server.js with other express app files
|web.config

我已配置 web.config 文件以将所有请求指向 server\server.js 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<webSocket enabled="false" />
<handlers>
<add name="iisnode" path="server\server.js" verb="*" modules="iisnode"/>
</handlers>
<rewrite>
<rules>
<rule name="DynamicContent">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
</conditions>
<action type="Rewrite" url="server\server.js"/>
</rule>
</rules>
</rewrite>
<security>
<requestFiltering>
<hiddenSegments>
<remove segment="bin"/>
<add segment="node_modules" />
</hiddenSegments>
</requestFiltering>
</security>
<httpErrors existingResponse="PassThrough" />
<iisnode watchedFiles="web.config;*.js"/>
</system.webServer>
</configuration>

在浏览器中加载站点时,会返回 server.js 的内容,但不会执行。除了配置的 iisnode 处理程序来运行此操作之外,我还需要什么?

最佳答案

尽管设置了路径:

<add name="iisnode" path="server\server.js" verb="*" modules="iisnode"/>

iisnode 模块似乎只能与根目录中的 server.js 文件一起使用。幸运的是,解决方案很简单,只需在根目录中创建一个仅包含子目录文件的 server.js 文件即可。整个文件只有一行:

require("./server/server.js");

然后您可以使用默认的 iisnode 处理程序:

<add name="iisnode" path="server.js" verb="*" modules="iisnode"/>

关于node.js - 尝试从应用程序服务中的子目录运行 Node 应用程序提供 server.js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com