整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          如何通過express托管靜態(tài)文件(將html頁面放

          如何通過express托管靜態(tài)文件(將html頁面放到node服務(wù)上)

          上個express搭建的基礎(chǔ)上,


          app.use('public',express.static('public'));


          在項目目錄上創(chuàng)建public文件夾,再創(chuàng)建子文件夾image


          test.js

          let express=require('express');


          let app=express();


          app.use('/public',express.static('public'));


          app.get('/',function(req,res){

          res.send('測試')

          })


          let server=app.listen(8080,function(){


          console.log('服務(wù)啟動');

          })

          這時候只要通過訪問localhost:8080/public/圖片.png

          就可以訪問到托管到服務(wù)上的文件了


          同樣的道理,我們可以把html文件托管上去,我們的html頁面就可以被訪問了

          在我們項目的根目錄下,創(chuàng)建一個html文件,我這里創(chuàng)建的是testReq.html

          app.use('/public',express.static('public'))


          app.get('/testReq.html', function (req, res) {

          res.sendFile( __dirname + "/" + "testReq.html" );

          })

          //這里的__dirname指的是獲取當(dāng)前文件所在目錄的完整目錄

          者: SnailClimb

          Markdown 簡歷模板樣式一覽


          可以看到我把聯(lián)系方式放在第一位,因為公司一般會與你聯(lián)系,所以把聯(lián)系方式放在第一位也是為了方便聯(lián)系考慮。

          為什么要用 Markdown 寫簡歷?

          Markdown 語法簡單,易于上手。使用正確的 Markdown 語言寫出來的簡歷不論是在排版還是格式上都比較干凈,易于閱讀。另外,使用 Markdown 寫簡歷也會給面試官一種你比較專業(yè)的感覺。

          除了這些,我覺得使用 Markdown 寫簡歷可以很方便將其與PDF、HTML、PNG格式之間轉(zhuǎn)換。后面我會介紹到轉(zhuǎn)換方法,只需要一條命令你就可以實現(xiàn) Markdown 到 PDF、HTML 與 PNG之間的無縫切換。

          下面的一些內(nèi)容我在之前的一篇文章中已經(jīng)提到過,這里再說一遍,最后會分享如何實現(xiàn)Markdown 到 PDF、HTML、PNG格式之間轉(zhuǎn)換的方法。

          為什么說簡歷很重要?

          • 假如你是網(wǎng)申,你的簡歷必然會經(jīng)過HR的篩選,一張簡歷HR可能也就花費10秒鐘看一下,然后HR就會決定你這一關(guān)是Fail還是Pass。
          • 假如你是內(nèi)推,如果你的簡歷沒有什么優(yōu)勢的話,就算是內(nèi)推你的人再用心,也無能為力。
          • 另外,就算你通過了篩選,后面的面試中,面試官也會根據(jù)你的簡歷來判斷你究竟是否值得他花費很多時間去面試。

          寫簡歷的兩大法則

          目前寫簡歷的方式有兩種普遍被認(rèn)可,一種是 STAR, 一種是 FAB。

          STAR法則(Situation Task Action Result):

          • Situation: 事情是在什么情況下發(fā)生;
          • Task:: 你是如何明確你的任務(wù)的;
          • Action: 針對這樣的情況分析,你采用了什么行動方式;
          • Result: 結(jié)果怎樣,在這樣的情況下你學(xué)習(xí)到了什么。

          FAB 法則(Feature Advantage Benefit):

          • Feature: 是什么;
          • Advantage: 比別人好在哪些地方;
          • Benefit: 如果雇傭你,招聘方會得到什么好處。

          項目經(jīng)歷怎么寫?

          簡歷上有一兩個項目經(jīng)歷很正常,但是真正能把項目經(jīng)歷很好的展示給面試官的非常少。對于項目經(jīng)歷大家可以考慮從如下幾點來寫:

          1. 對項目整體設(shè)計的一個感受
          2. 在這個項目中你負(fù)責(zé)了什么、做了什么、擔(dān)任了什么角色
          3. 從這個項目中你學(xué)會了那些東西,使用到了那些技術(shù),學(xué)會了那些新技術(shù)的使用
          4. 另外項目描述中,最好可以體現(xiàn)自己的綜合素質(zhì),比如你是如何協(xié)調(diào)項目組成員協(xié)同開發(fā)的或者在遇到某一個棘手的問題的時候你是如何解決的。

          專業(yè)技能該怎么寫?

          先問一下你自己會什么,然后看看你意向的公司需要什么。一般HR可能并不太懂技術(shù),所以他在篩選簡歷的時候可能就盯著你專業(yè)技能的關(guān)鍵詞來看。對于公司有要求而你不會的技能,你可以花幾天時間學(xué)習(xí)一下,然后在簡歷上可以寫上自己了解這個技能。比如你可以這樣寫:

          • Dubbo:精通
          • Spring:精通
          • Docker:掌握
          • SOA分布式開發(fā) :掌握
          • Spring Cloud:了解

          簡歷模板分享

          開源程序員簡歷模板: https://github.com/geekcompany/ResumeSample(包括PHP程序員簡歷模板、iOS程序員簡歷模板、Android程序員簡歷模板、Web前端程序員簡歷模板、Java程序員簡歷模板、C/C++程序員簡歷模板、NodeJS程序員簡歷模板、架構(gòu)師簡歷模板以及通用程序員簡歷模板)

          上述簡歷模板的改進版本: https://github.com/Snailclimb/Java-Guide/blob/master/面試必備/簡歷模板.md

          其他的一些小tips

          1. 盡量避免主觀表述,少一點語義模糊的形容詞,盡量要簡潔明了,邏輯結(jié)構(gòu)清晰。
          2. 注意排版(不需要花花綠綠的),盡量使用Markdown語法。
          3. 如果自己有博客或者個人技術(shù)棧點的話,寫上去會為你加分很多。
          4. 如果自己的Github比較活躍的話,寫上去也會為你加分很多。
          5. 注意簡歷真實性,一定不要寫自己不會的東西,或者帶有欺騙性的內(nèi)容
          6. 項目經(jīng)歷建議以時間倒序排序,另外項目經(jīng)歷不在于多,而在于有亮點。
          7. 如果內(nèi)容過多的話,不需要非把內(nèi)容壓縮到一頁,保持排版干凈整潔就可以了。
          8. 簡歷最后最好能加上:“感謝您花時間閱讀我的簡歷,期待能有機會和您共事。”這句話,顯的你會很有禮貌。
          我們剛剛講了很多關(guān)于如何寫簡歷的內(nèi)容并且分享了一份 Markdown 格式的簡歷文檔。下面我們來看看如何實現(xiàn) Markdown 到 HTML格式、PNG格式之間轉(zhuǎn)換。

          Markdown 到 HTML格式、PNG格式之間轉(zhuǎn)換

          網(wǎng)上很難找到一個比較方便并且效果好的轉(zhuǎn)換方法,最后我是通過 Visual Studio Code 的 Markdown PDF 插件完美解決了這個問題!

          安裝 Markdown PDF 插件

          ① 打開Visual Studio Code ,按快捷鍵 F1,選擇安裝擴展選項


          ② 搜索 “Markdown PDF” 插件并安裝 ,然后重啟


          使用方法

          隨便打開一份 Markdown 文件 點擊F1,然后輸入 export 然后選擇你想要轉(zhuǎn)換的格式即可!

          最近的開發(fā)當(dāng)中,我們需要為img標(biāo)簽以及canvas動態(tài)繪制的圖像提供下載功能,下面是經(jīng)過探索后我們得出的結(jié)果。

          一、Canvas 版本

          // 下載Canvas元素的圖片
          function downloadCanvasIamge(selector, name) {
           // 通過選擇器獲取canvas元素
           var canvas=document.querySelector(selector)
           // 使用toDataURL方法將圖像轉(zhuǎn)換被base64編碼的URL字符串
           var url=canvas.toDataURL('image/png')
           // 生成一個a元素
           var a=document.createElement('a')
           // 創(chuàng)建一個單擊事件
           var event=new MouseEvent('click')
           
           // 將a的download屬性設(shè)置為我們想要下載的圖片名稱,若name不存在則使用‘下載圖片名稱’作為默認(rèn)名稱
           a.download=name || '下載圖片名稱'
           // 將生成的URL設(shè)置為a.href屬性
           a.href=url
           
           // 觸發(fā)a的單擊事件
           a.dispatchEvent(event)
          }
          // 調(diào)用方式
          // 參數(shù)一: 選擇器,代表canvas
          // 參數(shù)二: 圖片名稱,可選
          downloadCanvasIamge('canvas', '圖片名稱')
          

          二、img 標(biāo)簽版本

          // 下載
          function downloadIamge(selector, name) {
           // 通過選擇器獲取img元素
           var img=document.querySelector(selector)
           // 將圖片的src屬性作為URL地址
           var url=img.src
           var a=document.createElement('a')
           var event=new MouseEvent('click')
           
           a.download=name || '下載圖片名稱'
           a.href=url
           
           a.dispatchEvent(event)
          }
          // 調(diào)用方式
          // 參數(shù)一: 選擇器,代表img標(biāo)簽
          // 參數(shù)二: 圖片名稱,可選
          downloadIamge('canvas', '圖片名稱')
          

          改進版

          由于跨域會導(dǎo)致a標(biāo)簽在部分瀏覽器中會直接打開新標(biāo)簽頁,所以改進如下

          function downloadIamge(selector, name) {
           var image=new Image()
           // 解決跨域 Canvas 污染問題
           image.setAttribute('crossOrigin', 'anonymous')
           image.onload=function () {
           var canvas=document.createElement('canvas')
           canvas.width=image.width
           canvas.height=image.height
           var context=canvas.getContext('2d')
           context.drawImage(image, 0, 0, image.width, image.height)
           var url=canvas.toDataURL('image/png')
           // 生成一個a元素
           var a=document.createElement('a')
           // 創(chuàng)建一個單擊事件
           var event=new MouseEvent('click')
           // 將a的download屬性設(shè)置為我們想要下載的圖片名稱,若name不存在則使用‘下載圖片名稱’作為默認(rèn)名稱
           a.download=name || '下載圖片名稱'
           // 將生成的URL設(shè)置為a.href屬性
           a.href=url
           // 觸發(fā)a的單擊事件
           a.dispatchEvent(event)
          }
          image.src=document.querySelector(selector).src
          }
          // 調(diào)用方式
          // 參數(shù)一: 選擇器,代表img標(biāo)簽
          // 參數(shù)二: 圖片名稱,可選
          downloadIamge('canvas', '圖片名稱')
          

          三、總結(jié)

          我們主要使用的是a標(biāo)簽的download屬性, 下面為MDN給出的說明:

          此屬性指示瀏覽器下載URL而不是導(dǎo)航到URL,因此將提示用戶將其保存為本地文件。

          如果屬性有一個值,它將在保存提示中用作預(yù)先填寫的文件名 (用戶仍然可以根據(jù)需要更改文件名)。對允許的值沒有限制,但是/和\被轉(zhuǎn)換為下劃線。大多數(shù)文件系統(tǒng)限制文件名中的一些標(biāo)點符號,瀏覽器會相應(yīng)地調(diào)整建議的名稱。

          需要注意的地方:

          此屬性僅適用于同源 URLs。

          可以使用 blob: URLs 和 data: URLs 以方便用戶下載 JavaScript 方式生成的內(nèi)容(例如使用在線繪圖的Web應(yīng)用創(chuàng)建的照片)。

          如果HTTP頭的Content-Disposition:存在,并且賦予了一個和這個屬性不同的文件名,HTTP頭優(yōu)先于此屬性。

          如果這個屬性存在 Content-Disposition 被設(shè)置為 inline,火狐優(yōu)先 Content-Disposition,像之前文件名??的情況下,而Chrome則優(yōu)先 download 屬性。


          主站蜘蛛池模板: 中日韩一区二区三区| 日本在线视频一区二区| 国产午夜精品一区理论片| 高清一区二区三区日本久| 怡红院美国分院一区二区 | 亚洲国产精品一区二区第一页 | 亚洲日本一区二区三区| 在线观看精品视频一区二区三区| 蜜臀AV一区二区| 乱子伦一区二区三区| 久久福利一区二区| 国产一区二区三区不卡观| 日韩在线观看一区二区三区| 亚洲日韩国产一区二区三区在线| 精品欧洲av无码一区二区 | 无码国产精品一区二区免费I6| 国产精品一区二区资源| 国产亚洲福利精品一区二区| 国产伦精品一区二区三区四区| 日韩精品午夜视频一区二区三区| 亚洲日韩精品无码一区二区三区| 亚洲高清一区二区三区电影 | 国产免费一区二区三区免费视频| 亚洲熟妇无码一区二区三区导航| 99热门精品一区二区三区无码| 国产美女口爆吞精一区二区| 91午夜精品亚洲一区二区三区| 国产凹凸在线一区二区| 日本在线不卡一区| 精品国产亚洲一区二区三区 | 麻豆一区二区在我观看| 中文字幕无码一区二区免费 | 国精产品一区一区三区有限公司| 精品三级AV无码一区| 91精品乱码一区二区三区| 一区二区三区在线看| 国产一区在线视频| 无码人妻一区二区三区兔费| 亚洲AV无码一区二区乱子伦| 国产aⅴ一区二区| 麻豆视传媒一区二区三区|