上個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)換的方法。
為什么說簡歷很重要?
寫簡歷的兩大法則
目前寫簡歷的方式有兩種普遍被認(rèn)可,一種是 STAR, 一種是 FAB。
STAR法則(Situation Task Action Result):
FAB 法則(Feature Advantage Benefit):
項目經(jīng)歷怎么寫?
簡歷上有一兩個項目經(jīng)歷很正常,但是真正能把項目經(jīng)歷很好的展示給面試官的非常少。對于項目經(jīng)歷大家可以考慮從如下幾點來寫:
專業(yè)技能該怎么寫?
先問一下你自己會什么,然后看看你意向的公司需要什么。一般HR可能并不太懂技術(shù),所以他在篩選簡歷的時候可能就盯著你專業(yè)技能的關(guān)鍵詞來看。對于公司有要求而你不會的技能,你可以花幾天時間學(xué)習(xí)一下,然后在簡歷上可以寫上自己了解這個技能。比如你可以這樣寫:
簡歷模板分享
開源程序員簡歷模板: 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
我們剛剛講了很多關(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 屬性。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。