Full Code of geshenyi/MockSecKill for AI

master 00405c4c9bd8 cached
23 files
34.0 KB
9.6k tokens
1 requests
Download .txt
Repository: geshenyi/MockSecKill
Branch: master
Commit: 00405c4c9bd8
Files: 23
Total size: 34.0 KB

Directory structure:
gitextract_jjnoj99z/

├── .gitignore
├── README.md
├── docker-compose.yml
└── seckill_service/
    ├── .idea/
    │   ├── .name
    │   ├── Seckill_Service.iml
    │   ├── encodings.xml
    │   ├── jsLibraryMappings.xml
    │   ├── libraries/
    │   │   └── Seckill_Service_node_modules.xml
    │   ├── misc.xml
    │   ├── modules.xml
    │   ├── runConfigurations/
    │   │   └── bin_www.xml
    │   └── workspace.xml
    ├── app.js
    ├── bin/
    │   └── www
    ├── package.json
    ├── public/
    │   └── stylesheets/
    │       └── style.css
    ├── routes/
    │   ├── index.js
    │   ├── seckill.js
    │   └── users.js
    ├── seckill_kafka_consumer.js
    └── views/
        ├── error.jade
        ├── index.jade
        └── layout.jade

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
node_modules/


================================================
FILE: README.md
================================================
# MockSecKill


================================================
FILE: docker-compose.yml
================================================
version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    links: 
      - zookeeper:zk
    ports:
      - "9092:9092"
    depends_on:
      - zookeeper
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 192.168.2.107
      KAFKA_ADVERTISED_PORT: "9092"
      KAFKA_ZOOKEEPER_CONNECT: zk:2181
  redis:
    image: redis
    ports:
      - "6379:6379"
  mysql:
    image: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root


================================================
FILE: seckill_service/.idea/.name
================================================
Seckill_Service

================================================
FILE: seckill_service/.idea/Seckill_Service.iml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
  <component name="NewModuleRootManager">
    <content url="file://$MODULE_DIR$" />
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Seckill_Service node_modules" level="project" />
  </component>
</module>

================================================
FILE: seckill_service/.idea/encodings.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="Encoding">
    <file url="PROJECT" charset="UTF-8" />
  </component>
</project>

================================================
FILE: seckill_service/.idea/jsLibraryMappings.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="JavaScriptLibraryMappings">
    <file url="file://$PROJECT_DIR$" libraries="{Seckill_Service node_modules}" />
    <includedPredefinedLibrary name="Node.js Core" />
  </component>
</project>

================================================
FILE: seckill_service/.idea/libraries/Seckill_Service_node_modules.xml
================================================
<component name="libraryTable">
  <library name="Seckill_Service node_modules" type="javaScript">
    <properties>
      <option name="frameworkName" value="node_modules" />
      <sourceFilesUrls>
        <item url="file://$PROJECT_DIR$/node_modules" />
      </sourceFilesUrls>
    </properties>
    <CLASSES>
      <root url="file://$PROJECT_DIR$/node_modules" />
    </CLASSES>
    <SOURCES />
  </library>
</component>

================================================
FILE: seckill_service/.idea/misc.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
    <OptionsSetting value="true" id="Add" />
    <OptionsSetting value="true" id="Remove" />
    <OptionsSetting value="true" id="Checkout" />
    <OptionsSetting value="true" id="Update" />
    <OptionsSetting value="true" id="Status" />
    <OptionsSetting value="true" id="Edit" />
    <ConfirmationsSetting value="0" id="Add" />
    <ConfirmationsSetting value="0" id="Remove" />
  </component>
</project>

================================================
FILE: seckill_service/.idea/modules.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/.idea/Seckill_Service.iml" filepath="$PROJECT_DIR$/.idea/Seckill_Service.iml" />
    </modules>
  </component>
</project>

================================================
FILE: seckill_service/.idea/runConfigurations/bin_www.xml
================================================
<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="bin/www" type="NodeJSConfigurationType" factoryName="Node.js" path-to-node="$USER_HOME$/Documents/Infrastructure/node-v4.4.0-darwin-x64/bin/node" path-to-js-file="bin/www" working-dir="$PROJECT_DIR$">
    <envs>
      <env name="DEBUG" value="Seckill_Service:*" />
    </envs>
    <browser url="http://localhost:3000/" />
    <method />
  </configuration>
</component>

================================================
FILE: seckill_service/.idea/workspace.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="6bb1f48b-8c62-4b3a-afd9-bff3aa7791ee" name="Default" comment="" />
    <ignored path="Seckill_Service.iws" />
    <ignored path=".idea/workspace.xml" />
    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
    <option name="TRACKING_ENABLED" value="true" />
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
    <option name="LAST_RESOLUTION" value="IGNORE" />
  </component>
  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
  <component name="CreatePatchCommitExecutor">
    <option name="PATCH_PATH" value="" />
  </component>
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  <component name="FavoritesManager">
    <favorites_list name="Seckill_Service" />
  </component>
  <component name="FileEditorManager">
    <leaf>
      <file leaf-file-name="app.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/app.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="-9.444445">
              <caret line="27" column="20" selection-start-line="27" selection-start-column="20" selection-end-line="27" selection-end-column="20" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="test_kafka.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/test_kafka.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="19" column="5" selection-start-line="19" selection-start-column="5" selection-end-line="19" selection-end-column="5" />
              <folding>
                <element signature="e#0#38#0" expanded="false" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="test_consumer.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/test_consumer.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="18" column="3" selection-start-line="18" selection-start-column="3" selection-end-line="18" selection-end-column="3" />
              <folding>
                <element signature="e#0#38#0" expanded="false" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="package.json" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/package.json">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="-11.875">
              <caret line="19" column="0" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="index.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/routes/index.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="1" selection-end-column="30" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="users.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/routes/users.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="1" column="4" selection-start-line="1" selection-start-column="4" selection-end-line="1" selection-end-column="4" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="seckill.js" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/routes/seckill.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.40145984">
              <caret line="13" column="34" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="34" />
              <folding>
                <element signature="e#0#38#0" expanded="false" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="individualCommands.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/node_modules/.2.6.5@redis/lib/individualCommands.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="24" column="23" selection-start-line="24" selection-start-column="23" selection-end-line="24" selection-end-column="23" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="multi.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/node_modules/.2.6.5@redis/lib/multi.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="110" column="68" selection-start-line="110" selection-start-column="66" selection-end-line="110" selection-end-column="68" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="test_redis.js" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/test_redis.js">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="10" column="24" selection-start-line="10" selection-start-column="24" selection-end-line="10" selection-end-column="24" />
              <folding>
                <element signature="e#0#38#0" expanded="false" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
    </leaf>
  </component>
  <component name="FileTemplateManagerImpl">
    <option name="RECENT_TEMPLATES">
      <list>
        <option value="JavaScript File" />
      </list>
    </option>
  </component>
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/test_consumer.js" />
        <option value="$PROJECT_DIR$/test_kafka.js" />
        <option value="$PROJECT_DIR$/package.json" />
        <option value="$PROJECT_DIR$/routes/index.js" />
        <option value="$PROJECT_DIR$/test_redis.js" />
        <option value="$PROJECT_DIR$/app.js" />
        <option value="$PROJECT_DIR$/routes/seckill.js" />
      </list>
    </option>
  </component>
  <component name="JsBuildToolGruntFileManager" detection-done="true" />
  <component name="JsBuildToolPackageJson" detection-done="true">
    <package-json value="$PROJECT_DIR$/package.json" />
  </component>
  <component name="JsGulpfileManager">
    <detection-done>true</detection-done>
  </component>
  <component name="ProjectFrameBounds">
    <option name="y" value="23" />
    <option name="width" value="1439" />
    <option name="height" value="821" />
  </component>
  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
    <OptionsSetting value="true" id="Add" />
    <OptionsSetting value="true" id="Remove" />
    <OptionsSetting value="true" id="Checkout" />
    <OptionsSetting value="true" id="Update" />
    <OptionsSetting value="true" id="Status" />
    <OptionsSetting value="true" id="Edit" />
    <ConfirmationsSetting value="0" id="Add" />
    <ConfirmationsSetting value="0" id="Remove" />
  </component>
  <component name="ProjectView">
    <navigator currentView="ProjectPane" proportions="" version="1">
      <flattenPackages />
      <showMembers />
      <showModules />
      <showLibraryContents />
      <hideEmptyPackages />
      <abbreviatePackageNames />
      <autoscrollToSource />
      <autoscrollFromSource />
      <sortByType />
      <manualOrder />
      <foldersAlwaysOnTop value="true" />
    </navigator>
    <panes>
      <pane id="Scope" />
      <pane id="Scratches" />
      <pane id="ProjectPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Seckill_Service" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Seckill_Service" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Seckill_Service" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Seckill_Service" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Seckill_Service" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="views" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="Seckill_Service" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="Seckill_Service" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="routes" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="WebServerToolWindowFactoryState" value="false" />
    <property name="nodejs_interpreter_path" value="$USER_HOME$/Documents/Infrastructure/node-v4.4.0-darwin-x64/bin/node" />
    <property name="javascript.nodejs.core.library.configured.version" value="4.4.0" />
    <property name="HbShouldOpenHtmlAsHb" value="" />
  </component>
  <component name="RunManager" selected="Node.js.app.js">
    <configuration default="false" name="test_kafka.js" type="NodeJSConfigurationType" factoryName="Node.js" temporary="true" path-to-node="$USER_HOME$/Documents/Infrastructure/node-v4.4.0-darwin-x64/bin/node" path-to-js-file="test_kafka.js" working-dir="$PROJECT_DIR$">
      <method />
    </configuration>
    <configuration default="false" name="test_consumer.js" type="NodeJSConfigurationType" factoryName="Node.js" temporary="true" path-to-node="$USER_HOME$/Documents/Infrastructure/node-v4.4.0-darwin-x64/bin/node" path-to-js-file="test_consumer.js" working-dir="$PROJECT_DIR$">
      <method />
    </configuration>
    <configuration default="false" name="test_redis.js" type="NodeJSConfigurationType" factoryName="Node.js" temporary="true" path-to-node="$USER_HOME$/Documents/Infrastructure/node-v4.4.0-darwin-x64/bin/node" path-to-js-file="test_redis.js" working-dir="$PROJECT_DIR$">
      <method />
    </configuration>
    <configuration default="false" name="app.js" type="NodeJSConfigurationType" factoryName="Node.js" temporary="true" path-to-node="$USER_HOME$/Documents/Infrastructure/node-v4.4.0-darwin-x64/bin/node" path-to-js-file="app.js" working-dir="$PROJECT_DIR$">
      <method />
    </configuration>
    <configuration default="true" type="DartCommandLineRunConfigurationType" factoryName="Dart Command Line Application">
      <method />
    </configuration>
    <configuration default="true" type="DartUnitRunConfigurationType" factoryName="DartUnit">
      <method />
    </configuration>
    <configuration default="true" type="JavaScriptTestRunnerKarma" factoryName="Karma" config-file="">
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
      <method />
    </configuration>
    <configuration default="true" type="NodeJSConfigurationType" factoryName="Node.js" working-dir="">
      <method />
    </configuration>
    <configuration default="true" type="cucumber.js" factoryName="Cucumber.js">
      <option name="cucumberJsArguments" value="" />
      <option name="executablePath" />
      <option name="filePath" />
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
      <command value="run-script" />
      <scripts />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="mocha-javascript-test-runner" factoryName="Mocha">
      <node-options />
      <working-directory>$PROJECT_DIR$</working-directory>
      <pass-parent-env>true</pass-parent-env>
      <envs />
      <ui>bdd</ui>
      <extra-mocha-options />
      <test-kind>DIRECTORY</test-kind>
      <test-directory />
      <recursive>false</recursive>
      <method />
    </configuration>
    <list size="5">
      <item index="0" class="java.lang.String" itemvalue="Node.js.bin/www" />
      <item index="1" class="java.lang.String" itemvalue="Node.js.test_kafka.js" />
      <item index="2" class="java.lang.String" itemvalue="Node.js.test_consumer.js" />
      <item index="3" class="java.lang.String" itemvalue="Node.js.test_redis.js" />
      <item index="4" class="java.lang.String" itemvalue="Node.js.app.js" />
    </list>
    <recent_temporary>
      <list size="4">
        <item index="0" class="java.lang.String" itemvalue="Node.js.app.js" />
        <item index="1" class="java.lang.String" itemvalue="Node.js.test_redis.js" />
        <item index="2" class="java.lang.String" itemvalue="Node.js.test_kafka.js" />
        <item index="3" class="java.lang.String" itemvalue="Node.js.test_consumer.js" />
      </list>
    </recent_temporary>
  </component>
  <component name="ShelveChangesManager" show_recycled="false" />
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
      <changelist id="6bb1f48b-8c62-4b3a-afd9-bff3aa7791ee" name="Default" comment="" />
      <created>1484492752471</created>
      <option name="number" value="Default" />
      <updated>1484492752471</updated>
    </task>
    <servers />
  </component>
  <component name="ToolWindowManager">
    <frame x="0" y="23" width="1439" height="821" extended-state="0" />
    <editor active="false" />
    <layout>
      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2496474" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
      <window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32968536" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32968536" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3994528" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
    </layout>
  </component>
  <component name="VcsContentAnnotationSettings">
    <option name="myLimit" value="2678400000" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager>
      <option name="time" value="4" />
    </breakpoint-manager>
    <watches-manager />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/node_modules/kafka-node/kafka.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/test_kafka.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="19" column="5" selection-start-line="19" selection-start-column="5" selection-end-line="19" selection-end-column="5" />
          <folding>
            <element signature="e#0#38#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/node_modules/.2.6.5@redis/lib/individualCommands.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="24" column="23" selection-start-line="24" selection-start-column="23" selection-end-line="24" selection-end-column="23" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/node_modules/.2.6.5@redis/lib/multi.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="110" column="68" selection-start-line="110" selection-start-column="66" selection-end-line="110" selection-end-column="68" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/test_redis.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="10" column="24" selection-start-line="10" selection-start-column="24" selection-end-line="10" selection-end-column="24" />
          <folding>
            <element signature="e#0#38#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/test_consumer.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="18" column="3" selection-start-line="18" selection-start-column="3" selection-end-line="18" selection-end-column="3" />
          <folding>
            <element signature="e#0#38#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/package.json">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-11.875">
          <caret line="19" column="0" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/routes/index.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="1" selection-end-column="30" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/app.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-9.444445">
          <caret line="27" column="20" selection-start-line="27" selection-start-column="20" selection-end-line="27" selection-end-column="20" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/routes/users.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="1" column="4" selection-start-line="1" selection-start-column="4" selection-end-line="1" selection-end-column="4" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/routes/seckill.js">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.40145984">
          <caret line="13" column="34" selection-start-line="13" selection-start-column="34" selection-end-line="13" selection-end-column="34" />
          <folding>
            <element signature="e#0#38#0" expanded="false" />
          </folding>
        </state>
      </provider>
    </entry>
  </component>
</project>

================================================
FILE: seckill_service/app.js
================================================
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var users = require('./routes/users');
var seckill = require('./routes/seckill');

var app = express();
app.listen(3000);

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', index);
app.use('/users', users);
app.use('/seckill', seckill);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;


================================================
FILE: seckill_service/bin/www
================================================
#!/usr/bin/env node

/**
 * Module dependencies.
 */

var app = require('../app');
var debug = require('debug')('seckill-service:server');
var http = require('http');

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

var server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);

/**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
  var port = parseInt(val, 10);

  if (isNaN(port)) {
    // named pipe
    return val;
  }

  if (port >= 0) {
    // port number
    return port;
  }

  return false;
}

/**
 * Event listener for HTTP server "error" event.
 */

function onError(error) {
  if (error.syscall !== 'listen') {
    throw error;
  }

  var bind = typeof port === 'string'
    ? 'Pipe ' + port
    : 'Port ' + port;

  // handle specific listen errors with friendly messages
  switch (error.code) {
    case 'EACCES':
      console.error(bind + ' requires elevated privileges');
      process.exit(1);
      break;
    case 'EADDRINUSE':
      console.error(bind + ' is already in use');
      process.exit(1);
      break;
    default:
      throw error;
  }
}

/**
 * Event listener for HTTP server "listening" event.
 */

function onListening() {
  var addr = server.address();
  var bind = typeof addr === 'string'
    ? 'pipe ' + addr
    : 'port ' + addr.port;
  debug('Listening on ' + bind);
}


================================================
FILE: seckill_service/package.json
================================================
{
  "name": "seckill-service",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.15.2",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "express": "~4.14.0",
    "jade": "~1.11.0",
    "kafka-node": "^1.3.0",
    "morgan": "~1.7.0",
    "mysql": "^2.12.0",
    "redis": "^2.6.5",
    "serve-favicon": "~2.3.0"
  }
}


================================================
FILE: seckill_service/public/stylesheets/style.css
================================================
body {
  padding: 50px;
  font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
}

a {
  color: #00B7FF;
}


================================================
FILE: seckill_service/routes/index.js
================================================
var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;


================================================
FILE: seckill_service/routes/seckill.js
================================================
var express = require('express');
var router = express.Router();
var redis = require('redis');
var kafka = require('kafka-node');
var Producer = kafka.Producer;
var kafkaClient = new kafka.Client();
var producer = new Producer(kafkaClient);
var count = 0;

router.post('/seckill', function (req, res) {
    console.log('count=' + count++);
    var fn = function (optionalClient) {
        if (optionalClient == 'undefined' || optionalClient == null) {
            var client = redis.createClient();
        }else{
            var client = optionalClient;
        }
        client.on('error', function (er) {
            console.trace('Here I am');
            console.error(er.stack);
            client.end(true);
        });
        client.watch("counter");
        client.get("counter", function (err, reply) {
            if (parseInt(reply) > 0) {
                var multi = client.multi();
                multi.decr("counter");
                multi.exec(function (err, replies) {
                    if (replies == null) {
                        console.log('should have conflict')
                        fn(client);
                    } else {
                        var payload = [
                            {
                                topic: 'CAR_NUMBER',
                                messages: 'buy 1 car',
                                partition: 0
                            }
                        ];
                        producer.send(payload, function (err, data) {
                            console.log(data);
                        });
                        res.send(replies);
                        client.end(true);
                    }
                });
            } else {
                console.log("sold out!");
                res.send("sold out!");
                client.end(true);
            }
        })
    };
    fn();
});

module.exports = router;

================================================
FILE: seckill_service/routes/users.js
================================================
var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;


================================================
FILE: seckill_service/seckill_kafka_consumer.js
================================================
var kafka = require('kafka-node'),
    Consumer = kafka.Consumer,
    client = new kafka.Client(),
    consumer = new Consumer(
        client,
        [
            {topic: 'CAR_NUMBER', partition: 0}
        ],
        {
            autoCommit: true
        }
    );

var mysql = require('mysql');
var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'root',
    database : 'seckill'
});

connection.connect();

consumer.on('message', function (message) {
    connection.query('INSERT INTO seckill set ?', {date: new Date()}, function(error, results, fields){
        if(error){
            console.error(error);
        }
        console.log(results);
    })
});

================================================
FILE: seckill_service/views/error.jade
================================================
extends layout

block content
  h1= message
  h2= error.status
  pre #{error.stack}


================================================
FILE: seckill_service/views/index.jade
================================================
extends layout

block content
  h1= title
  p Welcome to #{title}


================================================
FILE: seckill_service/views/layout.jade
================================================
doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
  body
    block content
Download .txt
gitextract_jjnoj99z/

├── .gitignore
├── README.md
├── docker-compose.yml
└── seckill_service/
    ├── .idea/
    │   ├── .name
    │   ├── Seckill_Service.iml
    │   ├── encodings.xml
    │   ├── jsLibraryMappings.xml
    │   ├── libraries/
    │   │   └── Seckill_Service_node_modules.xml
    │   ├── misc.xml
    │   ├── modules.xml
    │   ├── runConfigurations/
    │   │   └── bin_www.xml
    │   └── workspace.xml
    ├── app.js
    ├── bin/
    │   └── www
    ├── package.json
    ├── public/
    │   └── stylesheets/
    │       └── style.css
    ├── routes/
    │   ├── index.js
    │   ├── seckill.js
    │   └── users.js
    ├── seckill_kafka_consumer.js
    └── views/
        ├── error.jade
        ├── index.jade
        └── layout.jade
Condensed preview — 23 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (39K chars).
[
  {
    "path": ".gitignore",
    "chars": 14,
    "preview": "node_modules/\n"
  },
  {
    "path": "README.md",
    "chars": 14,
    "preview": "# MockSecKill\n"
  },
  {
    "path": "docker-compose.yml",
    "chars": 541,
    "preview": "version: '2'\nservices:\n  zookeeper:\n    image: wurstmeister/zookeeper\n    ports:\n      - \"2181:2181\"\n  kafka:\n    image:"
  },
  {
    "path": "seckill_service/.idea/.name",
    "chars": 15,
    "preview": "Seckill_Service"
  },
  {
    "path": "seckill_service/.idea/Seckill_Service.iml",
    "chars": 367,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module type=\"WEB_MODULE\" version=\"4\">\n  <component name=\"NewModuleRootManager\">\n"
  },
  {
    "path": "seckill_service/.idea/encodings.xml",
    "chars": 159,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"Encoding\">\n    <file url=\"PROJECT\" chars"
  },
  {
    "path": "seckill_service/.idea/jsLibraryMappings.xml",
    "chars": 270,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"JavaScriptLibraryMappings\">\n    <file ur"
  },
  {
    "path": "seckill_service/.idea/libraries/Seckill_Service_node_modules.xml",
    "chars": 423,
    "preview": "<component name=\"libraryTable\">\n  <library name=\"Seckill_Service node_modules\" type=\"javaScript\">\n    <properties>\n     "
  },
  {
    "path": "seckill_service/.idea/misc.xml",
    "chars": 545,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectLevelVcsManager\" settingsEditedMa"
  },
  {
    "path": "seckill_service/.idea/modules.xml",
    "chars": 282,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ProjectModuleManager\">\n    <modules>\n   "
  },
  {
    "path": "seckill_service/.idea/runConfigurations/bin_www.xml",
    "chars": 457,
    "preview": "<component name=\"ProjectRunConfigurationManager\">\n  <configuration default=\"false\" name=\"bin/www\" type=\"NodeJSConfigurat"
  },
  {
    "path": "seckill_service/.idea/workspace.xml",
    "chars": 24913,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n  <component name=\"ChangeListManager\">\n    <list default=\"t"
  },
  {
    "path": "seckill_service/app.js",
    "chars": 1348,
    "preview": "var express = require('express');\nvar path = require('path');\nvar favicon = require('serve-favicon');\nvar logger = requi"
  },
  {
    "path": "seckill_service/bin/www",
    "chars": 1601,
    "preview": "#!/usr/bin/env node\n\n/**\n * Module dependencies.\n */\n\nvar app = require('../app');\nvar debug = require('debug')('seckill"
  },
  {
    "path": "seckill_service/package.json",
    "chars": 410,
    "preview": "{\n  \"name\": \"seckill-service\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"start\": \"node ./bin/www\"\n  }"
  },
  {
    "path": "seckill_service/public/stylesheets/style.css",
    "chars": 111,
    "preview": "body {\n  padding: 50px;\n  font: 14px \"Lucida Grande\", Helvetica, Arial, sans-serif;\n}\n\na {\n  color: #00B7FF;\n}\n"
  },
  {
    "path": "seckill_service/routes/index.js",
    "chars": 205,
    "preview": "var express = require('express');\nvar router = express.Router();\n\n/* GET home page. */\nrouter.get('/', function(req, res"
  },
  {
    "path": "seckill_service/routes/seckill.js",
    "chars": 1916,
    "preview": "var express = require('express');\nvar router = express.Router();\nvar redis = require('redis');\nvar kafka = require('kafk"
  },
  {
    "path": "seckill_service/routes/users.js",
    "chars": 203,
    "preview": "var express = require('express');\nvar router = express.Router();\n\n/* GET users listing. */\nrouter.get('/', function(req,"
  },
  {
    "path": "seckill_service/seckill_kafka_consumer.js",
    "chars": 720,
    "preview": "var kafka = require('kafka-node'),\n    Consumer = kafka.Consumer,\n    client = new kafka.Client(),\n    consumer = new Co"
  },
  {
    "path": "seckill_service/views/error.jade",
    "chars": 84,
    "preview": "extends layout\n\nblock content\n  h1= message\n  h2= error.status\n  pre #{error.stack}\n"
  },
  {
    "path": "seckill_service/views/index.jade",
    "chars": 66,
    "preview": "extends layout\n\nblock content\n  h1= title\n  p Welcome to #{title}\n"
  },
  {
    "path": "seckill_service/views/layout.jade",
    "chars": 125,
    "preview": "doctype html\nhtml\n  head\n    title= title\n    link(rel='stylesheet', href='/stylesheets/style.css')\n  body\n    block con"
  }
]

About this extraction

This page contains the full source code of the geshenyi/MockSecKill GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 23 files (34.0 KB), approximately 9.6k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!