开发node.js,你需要的知识都在这里了

转自: https://www.jianshu.com/p/1f809e1aff66

前言

image

从2016年5月份开始,接触Node.js到现在已经有一年半的时间了。从最初的懵懵懂懂,到一篇一篇地啃大部头、看教程,再到自己开始写笔记、写教程,以及上手做了一些小功能,最终到部署自己的网站到云服务器上。

中间踩过坑(MongoDB基础X——踩过的坑以及解决方案),也走过弯路;为此付出过代价,也绞尽脑汁去解决。但总的来说,还算一路顺利。而当饱含自己心血的作品真正部署在了云服务并正常运行的时候,那份激动真的没法用语言来描述。

当知识积累到一定程度后,我希望能分享给新人们,让他们少走一些弯路,让他们能更快地上手、做出更多酷炫的作品来;于是我在简书创建了一个专题,把我的经验、我收集的资料以及其他人的经验都呈现给大家。>>>> 移步【Node.js专题】

最后,向大家推荐我的网站:

  • OneLib智库。这是我的博客,也是我发布最新资料的地方,欢迎大家留言和讨论。
  • 爱吐纳。这是我为林明老师做的网站,主要服务于高中学生和教师。
  • 工具集。这是我的工具集,提供了IP查询、火车票查询、图片解析、颜色等工具。
  • 汤圆直播。这是我做的一个简易直播网站,使用的是RTMP协议进行推流;不过不幸的是,.live域名无法备案,已经被阿里云和谐了。

我的github是 https://github.com/KKDestiny , 欢迎fork和star。
我的个人网站是 https://www.linxiaozhou.com:666


1.服务器部署

1.1 部署网站服务器

《在腾讯云/阿里云Ubuntu系统安装Node.js及运行环境》
很多人在开始学习伊始,碰到了部署服务器的麻烦,导致最终放弃了学习;事实上,在linux服务器上部署一个node.js服务是一件很简单的事。这篇文章介绍了如何在linux环境和Windows环境中部署一个node.js、npm及网站运行环境,并介绍了一些问题及如何解决。


1.2 部署Git服务器

《干货 | 简单几步搭建一个远程git服务器》
github是一个很厉害的东西,不过讲道理,有些代码是不能随便公开的;而你又希望使用git管理代码,且希望不论在家还是在公司,都能随时拉取和推送代码。这时候,你需要一个服务器,以及搭建一个简单的git服务器。这篇文章介绍了如何部署一个私人的git服务器,并使用私钥来验证身份。


1.3 域名和证书

《未来已来!免费数字证书使你的node.js服务器支持https》
SSL数字签名实现网站的HTTPS化,可以使网站可信,防劫持、防篡改、防窃听,是未来网站安全的发展趋势。这篇文章将告诉你如何以个人的名义申请SSL数字证书,并部署在node.js服务器上。


2.数据库部署

2.1 MongoDB的部署和使用

这里给出了一个学习系列资料,从安装到使用,到备份和还原,入门必看!


2.2 Redis的部署

《Node.js的Redis简单例子》
这篇文章主要介绍了如何在Windows和linux环境中安装Redis,并给出了一个nodejs的使用例子。


2.3 Mysql操作

《Node.js的MySQL基础》


3.运维与管理

3.1 代理

《http-proxy反向代理以调度服务器各app》
当我们的网站由PHP、Node.js和JavaWeb等应用组合起来时,就会面临80端口究竟给谁用的问题,谁都不愿意访问自己的网站的时候还要加个端口号。这时候,就需要用一个反向代理来进行调度;Nginx是一个很好的选择,不过,用node.js似乎更容易上手。这篇文章就是使用node.js的一个应用来代理各个服务的。


3.2 管理服务

《详细版 | 用Supervisor守护你的Node.js进程》
在我们初学node时,启动命令一般是node myapp,每次修改好代码后,还得先停止应用,然后重启。Supervisor是一个管理node服务的小工具,它能监控代码的变化,一旦代码有变化,它就能自动重启;它比较适合在开发过程中。在实际部署时,推荐使用pm2。

《用pm2管理node.js应用》
在部署了多个node.js应用后,我们还会面临多个应用管理不方便、需要来回切换命令行的窘境。为了解决这个问题,我决定使用pm2来管理所有node.js应用。


3.3 资源同步

《用sftp管理你的linux服务器》
因为服务器一般是用linux,我们开发则一般用Windows或mac,因此如何把代码同步到服务器是一个大问题;直接在服务器安装一个git来同步当然可以,但有时候我们想把代码或资源从服务拉回本地,就比较麻烦了。这篇文章介绍了如何通过sftp来更便捷地进行这些操作,只要你的服务器支持ssh,就可以进行这样的操作。通过sftp,你甚至不需要什么samba、ftp;毕竟这些服务既不方便安装,又是不安全因素。


4. 代码风格

《使用Async,让你的Node.js代码更优雅》
node.js在书写时最大的毛病就是异步函数,如果写得不好,就会嵌套一堆代码;使用Async可以有效避免这种情况。


5.学习资料与框架

5.1 基础知识

关于node.js的基础知识,我建议各位从最简单的教程开始看,这里推荐 菜鸟教程

一些权威网站的网址:

  1. Node.js官网
  2. Express官网:系统地学习Express框架
  3. Node.js API文档:Node.js的接口文档

以下为我写的一些资料,如果有不明白的可以先看看:

  1. 《搭建一个简单的Node.js(Express框架)的web服务器》
  2. 《Node.js(Express4.x)的Ajax处理》
  3. 《Node.js的文件上传》

我收集的一些资料:

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

5.2 一些小功能、小应用

  1. 《Node.js通过微信网页授权机制获取用户信息》
  2. 《Node.js接入微信公众平台后台》
  3. 《Node.js使用NodeMailer发送邮件》
  4. 《Node.js断点下载和多线程下载原理》
  5. 《Node.js(Express4.x)搭建聊天室》
  6. 《用Node.js做一个火车票查询小工具》
  7. 《RSA签名与验证》
  8. 《使用lazyload延迟加载图片来缓解服务器压力》
  9. 《jsPDF将HTML转为PDF文件》
  10. 《截屏粘贴到编辑器并自动上传》

附2:组件介绍

《干货 | Node.js有用的功能组件》
本文介绍了我在开发过程中所使用到的一些node.js中间件,如数据库中间件mongoose、redis,发送邮件的Nodemailer,视频处理的ffmpeg,文件(夹)压缩的archiver,签名和校验的crypto,等等。


结语

在一个月前,我开始接触Electron。这是一个跨平台的客户端开发工具,使用的是Node.js技术。我们只需要使用一种语言(javascript),就可以编译出Windows、linux和macos版的客户端,没错,客户端!

Electron 是一个使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用。你只要会node.js及相关技术,你就能做出以前只有会MFC、VS甚至Mac开发的程序员才能做的产品。其中代表作品包括Github客户端、优秀的编辑器Atom、Flow等。

image

Electron为我们做node.js开发的程序员打开了一扇全新世界的大门。从此,我们不再是跑在云上的虚幻的程序员,我们也能实实在在地开发出各种小工具出来!我将在简书的专题中同步

当然,千里之行,始于足下;在此之前,必须先把node.js甚至更基础的javascript学好,否则一切都是沙土中建高楼,根基不稳。

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


文 / 林晓州

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容