js启动服务端exe文件(不用考虑什么防火墙安全,我自有办法解决)

JavaScript023

js启动服务端exe文件(不用考虑什么防火墙安全,我自有办法解决),第1张

  var sh = new ActiveXObject("Shell.Application")

  cp=sh.ShellExecute ("notepad.exe")

前提是以Windows Scripts Host 方式运行(相当于保存成js文件,直接在资源管理器中直接双击js文件)。

1. sudo /path/scss.js # 载入已写好的配置, 侦听多个项目

推荐这种方法, 把多个项目的配置信息写到 scssConfig.js中, 不需要额外的参数.

2. sudo /path/scss.js -build # 读取所有的.scss并编译成.css文件

3. sudo /path/scss.js -clear # 清除错误日志(如果配置了 scssConfig.js里logDir的路径)

4. sudo /path/scss.js /path/project1/ /path/lib/ # 临时监听project1目录, lib为.scss里@import的path(无@import,可以省略)

首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。

安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。

本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。

开始

下一步,新建js文件,可以命名为server.js,代码如下:

var http = require('http')

var url = require('url')

var path = require('path')

var fs = require('fs')

var dir, arg = process.argv[2] || ''// 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称

// 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级

// 且你想以debug文件夹启动web服务

http.createServer(function (req, res) {

var pathname = __dirname + url.parse(req.url).pathname

dir = dir ? dir : pathname// 记住dir(目录)

pathname = dir ? pathname.replace(dir, dir + arg + '/') : pathname// 替换文件静态路径

if (path.extname(pathname) == "") {

pathname += "/"

}

if (pathname.charAt(pathname.length - 1) == "/") {

pathname += "index.html"// 入口文件,此处默认index.html

}

fs.exists(pathname, function (exists) {

if (exists) {

switch (path.extname(pathname)) {

case ".html":

res.writeHead(200, {"Content-Type": "text/html"})

break

case ".js":

res.writeHead(200, {"Content-Type": "text/javascript"})

break

case ".css":

res.writeHead(200, {"Content-Type": "text/css"})

break

case ".gif":

res.writeHead(200, {"Content-Type": "image/gif"})

break

case ".jpg":

res.writeHead(200, {"Content-Type": "image/jpeg"})

break

case ".png":

res.writeHead(200, {"Content-Type": "image/png"})

break

default:

res.writeHead(200, {"Content-Type": "application/octet-stream"})

}

// res可以自己添加信息来简单交互 比如可以修改点header信息 或者修改返回的资源数据

fs.readFile(pathname, function (err, data) {

res.end(data)

})

}

else {

res.writeHead(404, {"Content-Type": "text/html"})

res.end("<h1>404 Not Found</h1>")

}

})

}).listen(8085, "127.0.0.5")// 服务器端口

console.log("server running at http://127.0.0.5:8085/")

启动

当node安装完成及上述server.js文件也新建好之后。将其与你要访问的文件夹放在一起,可以放同层或者直接下层。比如,如果你要访问d:\test\debug文件夹。

你可以先将当前文件放入同层或者直接下,然后输入如下命令启动web服务:

先打开`cmd`,进入server文件所在目录,比如是`test`目录;

然后输入:`node server debug`(同层), 或者`node server`(子层),

此时会提示`server running at http://127.0.0.5:8085/`, 表示启动服务成功;

最后打开浏览器,进入:`127.0.0.5:8085`,即可访问此资源。