参考了一下几篇很给力的文章,在每篇文章中,都学到了解决遇到的问题的答案:

(1)用iisnode模块,让你的Node.js应用跑在Windows系统IIS中

(2)让IIS能够运行Nodejs

(3)记录一次使用iisnode部署node项目遇到的坑!

(4)NodeJS + express访问html、css、JS等静态资源文件

第(1)篇文章收获:

a.下载了IISNode.exe安装包。

b.了解需要在web.config中配置handler、iisnode、rewrite节点。

c.新建launch.js,作为nodejs web的入口。

第(2)篇文章收获:

a.到iisnode 安装目录 %programfiles%\iisnode\ 执行setupsamples.bat,通过iis可以成功访问到nodejs的项目,增强了继续死磕iisnode的信心。

b.修改setupsamples.bat,安装到其他站点下面(通过修改 set sitename="abcsiteweb").

第(3)篇文章收获:

a.iisnode的配置:

<iisnode
node_env="%node_env%"
nodeProcessCountPerApplication="1"
maxConcurrentRequestsPerProcess="1024"
maxNamedPipeConnectionRetry="100"
namedPipeConnectionRetryDelay="250"
maxNamedPipeConnectionPoolSize="512"
maxNamedPipePooledConnectionAge="30000"
asyncCompletionThreadCount="0"
initialRequestBufferSize="4096"
maxRequestBufferSize="65536"
watchedFiles="*.js;node_modules\*;routes\*.js;views\*.jade"
uncFileChangesPollingInterval="5000"
gracefulShutdownTimeout="60000"
loggingEnabled="true"
logDirectory="iisnode"
debuggingEnabled="true"
debugHeaderEnabled="false"
debuggerPortRange="5058-6058"
debuggerPathSegment="debug"
maxLogFileSizeInKB="128"
maxTotalLogFileSizeInKB="1024"
maxLogFiles="20"
devErrorsEnabled="true"
flushResponse="false"
enableXFF="false"
configOverrides="iisnode.yml"
nodeProcessCommandLine="C:\software\nodejs\node.exe"
promoteServerVars="REMOTE_ADDR" />

b.

自己通过观察发现:

C:\Program Files\iisnode\www\express\hello.js,发现:

配置路由,必须从根目录配置,去掉指定的端口:

路由从根目录配置例如:

app.get('/node/express/myapp/foo',function(req, res){}

端口(去掉原来指定的特定端口):
app.listen(process.env.PORT);

bin/www:

var port = normalizePort(process.env.PORT || '3030');
app.set('port', port); 修改为:
var port = normalizePort(process.env.PORT);
app.set('port', port);

var express = require('express');

var app = express.createServer();

app.get('/node/express/myapp/foo', function (req, res) {
res.send('Hello from foo! [express sample]');
}); app.get('/node/express/myapp/bar', function (req, res) {
res.send('Hello from bar! [express sample]');
}); app.listen(process.env.PORT);

静态文件如何处理呢?

第(4)篇文章,收获:

app.js代码如下:

const express = require('express')
const path = require('path')
const app = express() app.use(express.static(path.join(__dirname, 'public'))) app.listen(8080, () => {
console.log(`App listening at port 8080`)
})
其中最主要的部分是app.use(express.static(path.join(__dirname, 'public'))),该行代码是在express添加中间件,设置静态资源路径为public,所有的HTML、CSS、JS等文件都放在public下即可,后续代码迁移直接将public下的代码copy到Java Web的webRoot中就行

将public目录下的文件,搬迁到根目录下面。

以上如果都做到,基本就可以搞定iisnode的使用。

[IISNode] 如何在IIS7/8下,配置一个可以通过IIS访问NodeJS的web项目的更多相关文章

  1. Tomcat服务器中配置多个域名,访问不同的web项目

    先说一下在本地电脑怎么实现: 想要在一个tomcat下访问两个web项目时,可以通过添加虚拟host的方式来解决. 详细步骤如下: 1.将两个项目打包放入tomcat的webapps目录下: 2.修改 ...

  2. Linux下配置一个VNC服务器

    在Linux下配置一个VNC服务器,并设置2个用户,要求其中一个用户登录时不需要输入密码. 然后在客户端使用ssh+vncview的方式访问. 1确认vnc安装 2配置vncserver 3测试vnc ...

  3. [原创]IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135)

    IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135) http://user.qzone.qq.com/93701178/blog/1398155812 操作系统更新至Win7或Wi ...

  4. CAS (3) —— Mac下配置CAS客户端经代理访问Tomcat CAS

    CAS (3) -- Mac下配置CAS客户端经代理访问Tomcat CAS tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9 ...

  5. Ubuntu Nginx下配置网站ssl实现https访问

    最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...

  6. 如何在linux系统下配置无线网卡?【转】

    转自:http://www.jb51.net/LINUXjishu/61315.html 本文介绍在Linux 命令行界面中手动配置无线网卡的方法.目前流行的多数发行版都支持用图形界面的network ...

  7. Tomcat 下配置一个ip绑定多个域名

    原文:http://pkblog.blog.sohu.com/68921246.html 在网上找了半天也没找到相关的资料,都说的太含糊.本人对tomcat下配置 一ip对多域名的方法详细如下,按下面 ...

  8. 如何在linux环境下配置环境变量

    jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 在linux环 ...

  9. Nginx下配置网站SSL实现https访问本站就是用的这方法

    本文出至:新太潮流网络博客 第一步:服务器环境,lnmp即Linux+Nginx+PHP+MySQL,本文中以我的博客为例,使用的是阿里云最低档的ECS+免费的Linux服务器管理系统WDCP快速搭建 ...

随机推荐

  1. 【大数据】虚拟机网络配置-CentOS

    cd /etc/sysconfig/network-scripts/ vi ifcfg-enoXXXX vi /etc/hostname

  2. 阿里巴巴Java开发手册(格式规约篇)——查自己的漏-补自己的缺

    (三) 格式规约 1. [强制]大括号的使用约定.如果是大括号内为空,则简洁地写成{}即可,不需要换行:如果是非空代码块则: 1) 左大括号前不换行.行. 2) 左大括号后换行. 3) 右大括号前换行 ...

  3. static在Swift 中表示 “类型范围作用域”

    In Swift, however, type properties are written as part of the type’s definition, within the type’s o ...

  4. Arduino在串口监视器上输出字母表

    程序会在Arduino IDE的串口监视器上输出一个字母表. 不需要额外电路,但是板子必须通过串口线或USB线连接到电脑. 代码 程序在setup()函数中建立串口连接,然后逐行输出a~z的字母I表, ...

  5. 安装单机es

    1.安装JDK(1.8)2.上传解压Elasticsearch-5.4.33.创建一个普通用户,然后将对于的目录修改为普通用户的所属用户和所属组4.修改配置文件config/elasticsearch ...

  6. 10 Unit Testing and Automation Tools and Libraries Java Programmers Should Learn

    转自:https://javarevisited.blogspot.com/2018/01/10-unit-testing-and-integration-tools-for-java-program ...

  7. 统计学基础知识(二)---推断统计学(Inferential Statistics)

    推断统计学(Inferential Statistics):利用样本信息对总体进行估计和假设检验. 总体(population):在一个特定研究中所有感兴趣的个体组成的集合. 样本(sample):总 ...

  8. js中的逗号运算符

    逗号运算符 逗号运算符是二元运算符,它的操作数可以是任意类型.它首先计算左操作数,然后计算右操作数,最后返回右操作数的值,用逗号运算符可以在一条语句中执行多个运算 作用: 1.在一条语句中从左到右执行 ...

  9. vue 百度地图多标注展示和点击标注进行的提示

    index.html中加入script <script type="text/javascript" src="http://api.map.baidu.com/a ...

  10. shell 换行与不换行

    test.sh: echo -e "hello w\norld!"echo -e "hello w\c"echo "orld!" 输出 bo ...