使用nodejs 本地部署ArcGIS JS API

 

          本地部署ArcGIS JS API ,相信大多数人都会在IIS上进行部署。但如果在非windows系统下进行部署,就无法使用这种方法了。node环境可以部署在Linux与,Mac,Windows平台上,借助node,我们可以让ArcGIS JS API在任何系统上进行部署。

 

1.首先是安装nodejs 环境,这里是nodejs 的下载链接:http://nodejs.cn/download/,windows下的安装十分简单,就不做介绍了。linux环境下的node 安装可以参考此文https://www.cnblogs.com/kevinchou/p/5405540.html。(要注意软连接与添加环境变量不同,建议添加环境变量的方式。)

2.其次是ArcGIS JSAPI 的文件准备 。我部署的是3.27版本,这里是下载地址:https://pan.baidu.com/s/1BQ2lRBFowNX5SMMMX88xAA       提取码:mc6h。

3.创建node工程。在你本地新建文件夹,命名为你的工程名。在文件目录内打开shell命令栏,输入指令程名。

$ npm init

4. 安装express包。express可以帮助我们快速构建web 静态资源访问网站,所以这里采用express来发布ArcGIS JS API。 

$ npm install express --save

5.将下载好的ArcgisJsAPI拷贝到该工程目录下,此时工程的文件结构如下:

 使用nodejs 本地部署ArcGIS JS API_第1张图片

6.找到两个需要修改的文件目录:

     \3.27\init.js       \3.27\dojo.js

和在IIS中部署ArcGIS JS api 一样,我们需要将这两个文件进行修改,才能部署成功。这里的实现思路是使用node读取两个文件,修改读取流的内容,再写入到特定的文件中去。为了保证每次运行node环境均能正确执行,这里将dojo.js的源文件在同目录下进行拷贝,命名为dojoTemplate.js。

7.编写文件 server.js

let express=require("express"),
fs=require("fs"),
path=require("path"),
currentLocation=__dirname,
reg=/\[HOSTNAME_AND_PATH_TO_DOJO\]/,
app=express();
//配置项
let ip="127.0.0.1",
http="http:",
https="https:",
port="3333",
version="3.27";
var host=http+"//"+ip;
var hostPort=host+":"+port;
var dojoUrl=new URL('/dojo',hostPort).href;
//读取原始文件路径,这里的dojoTemplate.js是dojo.js源文件的拷贝
primDojo=path.join(currentLocation,version,"dojo","dojoTemplate.js");
primInit=path.join(currentLocation,version,"init.js");
//输出文件路径
newInit=path.join(currentLocation,version,"myInit.js");
newDojo=path.join(currentLocation,version,"dojo","dojo.js");

//修改文件BXMapAPI.JS
let  initContent = fs.readFileSync(primDojo, "utf-8");
updatedInitContent=initContent.replace(reg,dojoUrl);
fs.writeFileSync(newInit, updatedInitContent, "utf-8");
LogFile.info("init built at "+newInit);
//修改新的dojo文件
let rawDojoContent=fs.readFileSync(primDojo, "utf-8");
let updateDojoContent=rawDojoContent.replace(reg,dojoUrl);
fs.writeFileSync(newDojo, updateDojoContent, "utf-8");
LogFile.info("dojo built at "+BXMapDOJOFile);
//express项目,将整个Arcgis js api文件作为静态资源发布
app.use(express.static(version));
app.listen(port);


8.在文件目录内打开shell命令栏,输入指令   node server.js ,启动项目。

我们打开网址127.0.0.1:3333/myInit.js,可以查看到js的内容,就说明我们已经成功部署。

 

 

你可能感兴趣的:(JS,nodejs)