關(guān)于開發(fā)node.js個人網(wǎng)站,你需要的知識都在這里了

前言

nodejs.jpg

從2016年5月份開始,接觸Node.js到現(xiàn)在已經(jīng)有一年半的時間了。從最初的懵懵懂懂,到一篇一篇地啃大部頭、看教程,再到自己開始寫筆記、寫教程,以及上手做了一些小功能,最終到部署自己的網(wǎng)站到云服務(wù)器上。

中間踩過坑(MongoDB基礎(chǔ)X——踩過的坑以及解決方案),也走過彎路;為此付出過代價,也絞盡腦汁去解決。但總的來說,還算一路順利。而當(dāng)飽含自己心血的作品真正部署在了云服務(wù)并正常運行的時候,那份激動真的沒法用語言來描述。

當(dāng)知識積累到一定程度后,我希望能分享給新人們,讓他們少走一些彎路,讓他們能更快地上手、做出更多酷炫的作品來;于是我在簡書創(chuàng)建了一個專題,把我的經(jīng)驗、我收集的資料以及其他人的經(jīng)驗都呈現(xiàn)給大家。>>>> 移步【Node.js專題】

最后,向大家推薦我的網(wǎng)站:

  • OneLib智庫。這是我的博客,也是我發(fā)布最新資料的地方,歡迎大家留言和討論。
  • 愛吐納。這是我為林明老師做的網(wǎng)站,主要服務(wù)于高中學(xué)生和教師。
  • 工具集。這是我的工具集,提供了IP查詢、火車票查詢、圖片解析、顏色等工具。
  • 湯圓直播。這是我做的一個簡易直播網(wǎng)站,使用的是RTMP協(xié)議進(jìn)行推流;不過不幸的是,.live域名無法備案,已經(jīng)被阿里云和諧了。

我的github是 https://github.com/KKDestiny , 歡迎fork和star。
我的個人網(wǎng)站是 https://www.linxiaozhou.com:666


1.服務(wù)器部署

1.1 部署網(wǎng)站服務(wù)器

《在騰訊云/阿里云Ubuntu系統(tǒng)安裝Node.js及運行環(huán)境》
很多人在開始學(xué)習(xí)伊始,碰到了部署服務(wù)器的麻煩,導(dǎo)致最終放棄了學(xué)習(xí);事實上,在linux服務(wù)器上部署一個node.js服務(wù)是一件很簡單的事。這篇文章介紹了如何在linux環(huán)境和Windows環(huán)境中部署一個node.js、npm及網(wǎng)站運行環(huán)境,并介紹了一些問題及如何解決。


1.2 部署Git服務(wù)器

《干貨 | 簡單幾步搭建一個遠(yuǎn)程git服務(wù)器》
github是一個很厲害的東西,不過講道理,有些代碼是不能隨便公開的;而你又希望使用git管理代碼,且希望不論在家還是在公司,都能隨時拉取和推送代碼。這時候,你需要一個服務(wù)器,以及搭建一個簡單的git服務(wù)器。這篇文章介紹了如何部署一個私人的git服務(wù)器,并使用私鑰來驗證身份。


1.3 域名和證書

《未來已來!免費數(shù)字證書使你的node.js服務(wù)器支持https》
SSL數(shù)字簽名實現(xiàn)網(wǎng)站的HTTPS化,可以使網(wǎng)站可信,防劫持、防篡改、防竊聽,是未來網(wǎng)站安全的發(fā)展趨勢。這篇文章將告訴你如何以個人的名義申請SSL數(shù)字證書,并部署在node.js服務(wù)器上。


2.數(shù)據(jù)庫部署

2.1 MongoDB的部署和使用

這里給出了一個學(xué)習(xí)系列資料,從安裝到使用,到備份和還原,入門必看!


2.2 Redis的部署

《Node.js的Redis簡單例子》
這篇文章主要介紹了如何在Windows和linux環(huán)境中安裝Redis,并給出了一個nodejs的使用例子。


2.3 Mysql操作

《Node.js的MySQL基礎(chǔ)》


3.運維與管理

3.1 代理

《http-proxy反向代理以調(diào)度服務(wù)器各app》
當(dāng)我們的網(wǎng)站由PHP、Node.js和JavaWeb等應(yīng)用組合起來時,就會面臨80端口究竟給誰用的問題,誰都不愿意訪問自己的網(wǎng)站的時候還要加個端口號。這時候,就需要用一個反向代理來進(jìn)行調(diào)度;Nginx是一個很好的選擇,不過,用node.js似乎更容易上手。這篇文章就是使用node.js的一個應(yīng)用來代理各個服務(wù)的。


3.2 管理服務(wù)

《詳細(xì)版 | 用Supervisor守護你的Node.js進(jìn)程》
在我們初學(xué)node時,啟動命令一般是node myapp,每次修改好代碼后,還得先停止應(yīng)用,然后重啟。Supervisor是一個管理node服務(wù)的小工具,它能監(jiān)控代碼的變化,一旦代碼有變化,它就能自動重啟;它比較適合在開發(fā)過程中。在實際部署時,推薦使用pm2。

《用pm2管理node.js應(yīng)用》
在部署了多個node.js應(yīng)用后,我們還會面臨多個應(yīng)用管理不方便、需要來回切換命令行的窘境。為了解決這個問題,我決定使用pm2來管理所有node.js應(yīng)用。


3.3 資源同步

《用sftp管理你的linux服務(wù)器》
因為服務(wù)器一般是用linux,我們開發(fā)則一般用Windows或mac,因此如何把代碼同步到服務(wù)器是一個大問題;直接在服務(wù)器安裝一個git來同步當(dāng)然可以,但有時候我們想把代碼或資源從服務(wù)拉回本地,就比較麻煩了。這篇文章介紹了如何通過sftp來更便捷地進(jìn)行這些操作,只要你的服務(wù)器支持ssh,就可以進(jìn)行這樣的操作。通過sftp,你甚至不需要什么samba、ftp;畢竟這些服務(wù)既不方便安裝,又是不安全因素。


4. 代碼風(fēng)格

《使用Async,讓你的Node.js代碼更優(yōu)雅》
node.js在書寫時最大的毛病就是異步函數(shù),如果寫得不好,就會嵌套一堆代碼;使用Async可以有效避免這種情況。


5.學(xué)習(xí)資料與框架

5.1 基礎(chǔ)知識

關(guān)于node.js的基礎(chǔ)知識,我建議各位從最簡單的教程開始看,這里推薦 菜鳥教程。

一些權(quán)威網(wǎng)站的網(wǎng)址:

  1. Node.js官網(wǎng)
  2. Express官網(wǎng):系統(tǒng)地學(xué)習(xí)Express框架
  3. Node.js API文檔:Node.js的接口文檔

以下為我寫的一些資料,如果有不明白的可以先看看:

  1. 《搭建一個簡單的Node.js(Express框架)的web服務(wù)器》
  2. 《Node.js(Express4.x)的Ajax處理》
  3. 《Node.js的文件上傳》

我收集的一些資料:

  1. Jade:源于 Node.js 的 HTML 模板引擎
  2. EJS:另一種模板引擎

5.2 一些小功能、小應(yīng)用

  1. 《Node.js通過微信網(wǎng)頁授權(quán)機制獲取用戶信息》
  2. 《Node.js接入微信公眾平臺后臺》
  3. 《Node.js使用NodeMailer發(fā)送郵件》
  4. 《Node.js斷點下載和多線程下載原理》
  5. 《Node.js(Express4.x)搭建聊天室》
  6. 《用Node.js做一個火車票查詢小工具》
  7. 《RSA簽名與驗證》
  8. 《使用lazyload延遲加載圖片來緩解服務(wù)器壓力》
  9. 《jsPDF將HTML轉(zhuǎn)為PDF文件》
  10. 《截屏粘貼到編輯器并自動上傳》

附2:組件介紹

《干貨 | Node.js有用的功能組件》
本文介紹了我在開發(fā)過程中所使用到的一些node.js中間件,如數(shù)據(jù)庫中間件mongoose、redis,發(fā)送郵件的Nodemailer,視頻處理的ffmpeg,文件(夾)壓縮的archiver,簽名和校驗的crypto,等等。


結(jié)語

在一個月前,我開始接觸Electron。這是一個跨平臺的客戶端開發(fā)工具,使用的是Node.js技術(shù)。我們只需要使用一種語言(javascript),就可以編譯出Windows、linux和macos版的客戶端,沒錯,客戶端!

Electron 是一個使用 JavaScript, HTML 和 CSS 構(gòu)建跨平臺的桌面應(yīng)用。你只要會node.js及相關(guān)技術(shù),你就能做出以前只有會MFC、VS甚至Mac開發(fā)的程序員才能做的產(chǎn)品。其中代表作品包括Github客戶端、優(yōu)秀的編輯器Atom、Flow等。

upload.png

Electron為我們做node.js開發(fā)的程序員打開了一扇全新世界的大門。從此,我們不再是跑在云上的虛幻的程序員,我們也能實實在在地開發(fā)出各種小工具出來!我將在簡書的專題中同步

當(dāng)然,千里之行,始于足下;在此之前,必須先把node.js甚至更基礎(chǔ)的javascript學(xué)好,否則一切都是沙土中建高樓,根基不穩(wěn)。

最后,祝愿每一個程序員都能找到自己的人生。


文 / 林曉州

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評論 19 139
  • 今天是我第一次下載簡書App,第一次未成功,心想讓大女兒回來幫忙,我又試了第二次,耶!成功了。
    時凱旋閱讀 200評論 0 0
  • 文/張又可 節(jié)選自張又可文集《青春的遺囑》 假如你第一次跳傘,你的心跳加快,你從飛機上往下跳之前,教練給你最后的指...
    張又可閱讀 820評論 3 1
  • 說起英語,我可以算是一個長期學(xué)習(xí)者了吧,因為從小學(xué)就開始學(xué),一直到了大學(xué)也還在學(xué),甚至以后上了研究生,工作了也還早...
    項潔的30日實驗閱讀 532評論 2 0

友情鏈接更多精彩內(nèi)容