自動生成簡單的落地頁 auto-landing-page-client

clipboard.png

公司每一版的app下載頁結構變化都不大(能夠說結構基本沒有變化),因此突發奇想利用 ejs 和 nodejs 寫了個小工具來自動生成。雖然目前看起來沒有提高太多的效率,不過權當練手,說不定之後完善了,你們用起來都比較順手呢(但願比較渺茫,捂臉...)前端

自動生成簡單的落地頁的小工具 auto-langding-page-clientvue

auto-langding-page 是以前我寫的一個小工具,專門用來自動構建簡單的落地頁(如app下載頁,目前只適配移動端)。這是基於此的圖形用戶界面,使用更直觀。node

clipboard.png

如何使用

  • 前端運行端口 http://localhost:8001
  • 後端運行端口 http://localhost:8000
  1. 使用 concurrently 能夠同時運行前端和後端的服務
    直接 npm run dev 便可同時啓動先後端兩個服務
  2. 分別運行前端、後端

npm run dev:client
npm run dev:serverwebpack

前端搭建思路 client

  1. 使用vue搭建
  2. 總體佈局採用 display:table 來作水平和垂直的居中定位
  3. 上傳圖片使用 <input type="file">
  4. inputmultiple 屬性容許多選文件
  5. 使用post方法和server端通訊,並提交 DataForm 對象做爲上傳圖片的載體

後端搭建思路 server

  1. 使用koa2框架搭建
  2. 接受前端上傳的圖片
  3. 利用 auto-page-langding 生成網頁文件,並打包打包成zip文件
  4. 返回給客戶端下載地址
  5. 作了一點安全性處理,避免不一樣用戶看到彼此上傳的文件,對每一個訪問後端的用戶提供一個隨機字符串做爲 cookie
  6. 後端利用session (koa-session) 存儲對應cookie的userId,並以此做爲每一個用戶獨有的文件下載路徑

API

描述 接口 方法 備註
獲取默認圖片 /api/getDefaultImg get -
上傳圖片 /api/uploadFiles post 上傳使用DataForm
生成網頁文件並打包成zip文件 /api/buildFiles post 返回zip文件下載地址

目錄結構

|-- app.js
|-- bin
|   |-- www
|-- conf
|   |-- constance.js
|-- controller
|   |-- buildFiles.js
|   |-- defaultFiles.js
|   |-- inputFiles.js
|-- lib
|   |-- auto-landing-page
|-- middleware
|   |-- checkUserId.js
|-- model
|   |-- resModel.js
|-- public
|   |-- defaultFiles
|   |   |-- bg.png
|   |   |-- btn.png
|   |-- download
|-- routes
|   |-- index.js
|-- userFiles
    |-- input
    |-- out

若是有跨域問題有以下解決辦法

  • NGINX 設置反向代理
  • http-server -P http://localhost:8000
  • 服務端設置 header('Access-Control-Allow-Origin: *')
  • webpack-dev-server.proxy 設置 http://localhost:8000

最後舔着臉求個 star 若是能提出寶貴意見更歡迎。git

auto-langding-page-client: https://github.com/maroonstar...
auto-langding-page: https://github.com/maroonstar...github

thx!web

相關文章
相關標籤/搜索