重要

安装appium的时候千万不要使用sudo npm install -g appium 来安装。

 

再次初始化

var http = require('http')

  , express = require('express')

  , favicon = require('serve-favicon')

  , bodyParser = require('body-parser')

  , methodOverride = require('method-override')

  , morgan = require('morgan') // logger

  , routing = require('./routing.js')

  , path = require('path')

  , appium = require('../appium.js')

  , parserWrap = require('./middleware').parserWrap

  , appiumVer = require('../../package.json').version

  , appiumRev = null

  , async = require('async')

  , helpers = require('./helpers.js')

  , logFinalWarning = require('../helpers.js').logFinalDeprecationWarning

  , getConfig = require('../helpers.js').getAppiumConfig

  , allowCrossDomain = helpers.allowCrossDomain

  , catchAllHandler = helpers.catchAllHandler

  , checkArgs = helpers.checkArgs

  , configureServer = helpers.configureServer

  , startListening = helpers.startListening

  , conditionallyPreLaunch = helpers.conditionallyPreLaunch

  , prepareTmpDir = helpers.prepareTmpDir

  , requestStartLoggingFormat = require('./helpers.js').requestStartLoggingFormat

  , requestEndLoggingFormat = require('./helpers.js').requestEndLoggingFormat

  , domainMiddleware = require('./helpers.js').domainMiddleware;

 

变量名模块意义
httphttphttp模块,不解释.
expressexpress第三方模块.用于搭建http服务器.
faviconserve-favicon第三方模块,express中间件组件,改善图片缓存性能的.
bodyParserbody-parser第三方模块.express依赖的中间件组件.
methodOverridemethod-override第三方模块.可以理解为重写了http模块中一些方法,可能是核心模块http中有些方法不太好用.
morganmorgan第三方模块.类似log器,在控制台中,显示req请求的信息.
routing./routing.js本地模块.路由模块.这个模块中定义了uri对应的处理方法,我们以后会对其进行解释.
pathpath核心模块.用于处理文件路径相关的操作.
appium../appium.js本地模块.以后会解释,暂时我也不知道是个啥
parserWrap./middleware本地模块.同上.
appiumVer../../package.jsonappium的版本
appiumRev未知null
asyncasync第三方模块.是一个流程控制工具包,提供了直接而强大的异步功能.
helpers./helpers.js本地模块.以后解释
logFinalWarning./helpers.js本地模块.helpers.js模块中logFinalDeprecationWarning模块.
getConfig../helpers.js本地模块.helpers中的getAppiumConfig模块.保存有appium的配置信息.
allowCrossDomain../helpers.js回调方法对象.
catchAllHandler../helpers.js回调方法对象.
checkArgs../helpers.js回调方法对象.
configureServer../helpers.js回调方法对象.
startListening../helpers.js回调方法对象.
conditionallyPreLaunch../helpers.js回调方法对象.
prepareTmpDir../helpers.js回调方法对象.
requestStartLoggingFormat../helpers.js本地模块.helpers.js中的requestStartLoggingFormat模块.
requestEndLoggingFormat../helpers.js本地模块.helpers.js中的requestEndLoggingFormat模块.
domainMiddleware../helpers.js

本地模块.helpers.js中的domainMiddleware模块.

 

 

最后2句代码

if (require.main === module) { main(args); } module.exports.run = main;

上面的代码为main.js的最后一段代码,从上面的代码可以看出,该模块中最主要的函数为main函数,提供给外部模块的是run函数。如果当前模块就是启动模块的话,那么会自己调用main函数,所以下一篇我们会单独说main函数的内容。