1.开始javascript
Nodejs in Visual Studio Code 08.IIS : http://www.cnblogs.com/mengkzhaoyun/p/5410185.htmlcss
参考此篇内容,部署一个iisnode示例html
2.将Node.js Express框架示例程序部署在IISNode中java
1
2
3
4
5
6
7
8
9
10
11
|
$
cd
D:\Libraries\Documents\Visual Studio Code
$ express myapp
create : myapp
create : myapp
/package
.json
......
install
dependencies:
>
cd
myapp && npm
install
run the app:
> SET DEBUG=myapp:* & npm start
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<configuration>
<system.webServer>
<!-- bin/www 是Express示例默认的启动程序 -->
<handlers>
<add name=
"iisnode"
path=
"bin/www"
verb=
"*"
modules=
"iisnode"
/>
</handlers>
<rewrite>
<rules>
<rule name=
"myapp"
>
<match url=
"/*"
/>
<action type=
"Rewrite"
url=
"bin/www"
/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
|
1
2
3
|
HTTP 错误 404.8 - Not Found
请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径。
|
将bin/www代码剪切过来,并删除bin/www,修改Web.config中的入口程序为index.jsnode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<configuration>
<system.webServer>
<!-- index.js 是myapp的启动程序 -->
<handlers>
<add name=
"iisnode"
path=
"index.js"
verb=
"*"
modules=
"iisnode"
/>
</handlers>
<rewrite>
<rules>
<rule name=
"myapp"
>
<match url=
"/*"
/>
<action type=
"Rewrite"
url=
"index.js"
/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
iisnode encountered an error when processing the request.
HRESULT: 0x2
HTTP status: 500
HTTP subStatus: 1002
HTTP reason: Internal Server Error
You are receiving this HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled configuration setting is 'true'.
In addition to the log of stdout and stderr of the node.exe process, consider using debugging and ETW traces to further diagnose the problem.
The last 64k of the output generated by the node.exe process to stderr is shown below:
Application has thrown an uncaught exception and is terminated:
Error: Cannot find module '../app'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<
anonymous
> (D:\Libraries\Documents\Visual Studio Code\myapp\index.js:7:11)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
|
1
2
3
|
var
app = require(
'./app'
);
var
debug = require(
'debug'
)(
'myapp:server'
);
var
http = require(
'http'
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Not Found
404
Error: Not Found
at D:\Libraries\Documents\Visual Studio Code\myapp\app.js:30:13
at Layer.handle [as handle_request] (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:312:13)
at D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:280:7
at Function.process_params (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:330:12)
at next (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:271:10)
at D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:618:15
at next (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:256:14)
at Function.handle (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:176:3)
at router (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:46:12)
|
1
2
3
4
|
app.use(
'/myapp'
,express.
static
(path.join(__dirname,
'public'
)));
app.use(
'/myapp'
, routes);
app.use(
'/myapp/users'
, users);
|
1
2
3
4
5
6
7
|
doctype html
html
head
title= title
link(rel=
'stylesheet'
, href=
'stylesheets/style.css'
)
body
block content
|
将全部myapp下的执行请求都交给index.js去执行了,显然myapp/index.js/debug这个地址不该该给index.js去执行。git
修改web.config中的url rewriter节,将index.js/debug这个地址设置成不匹配negate="true"。github
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<
configuration
>
<
system.webServer
>
<!-- index.js 是myapp的启动程序 -->
<
handlers
>
<
add
name="iisnode" path="index.js" verb="*" modules="iisnode" />
</
handlers
>
<
rewrite
>
<
rules
>
<
rule
name="myapp">
<
match
url="index.js/debug" negate="true" />
<
action
type="Rewrite" url="index.js" />
</
rule
>
</
rules
>
</
rewrite
>
</
system.webServer
>
</
configuration
>
|
3.总结web
iisnode各类叼,支持发布后跨平台远程调试,若是发布过程当中遇到问题怎么办呢,iisnode发布5年了(目前是0.2.*版本),应该积累了很多issues了,一篇篇翻看,或者去问做者解决吧。express
示例代码,请前往:https://github.com/Mengkzhaoyun/nodepractise npm
04.iisNode&myApp
http://www.cnblogs.com/mengkzhaoyun/p/5414501.html