设为首页 收藏本站
查看: 1249|回复: 0

[经验分享] 如何系统地学习Node.js?

[复制链接]

尚未签到

发表于 2017-2-24 11:57:42 | 显示全部楼层 |阅读模式
(嗯..简单说明一下,下面只是当初写一个node小项目用到的东西,自己随手总结了一下,学完这些,大概能从前端到后端自己随手写一些node的小东西,但想要深入学习node,下面是远远不够的,别的回答里有一些推荐的深入学习的,推荐看一看~)
-----------------------------------------------------------------------------------------------------
Node:
1.《nodejs入门》,才38页,很好,书中项目做一下,学会基础
  2.《nodejs开发指南》。180多页,很好,书中项目做一下,知道基础,及基本的配合express,jquery,bootstrap,数据库MongoDB
  另附一些node实现书中例子的一些变化使用Express3.0实现<Node.js开发指南
  3.开始看express创建初始项目的源代码对比2中的书,发现express更新后新的特性:Migrating from 3.x to 4.x · strongloop/express Wiki · GitHub
  看express官网api
  英文:Express 4.x - API Reference
  中文:Express - api参考
  4.之后发现,一个系列课程,从零开始nodejs系列文章:从零开始nodejs系列文章
  其中 文章: Node.js开发框架Express4.x:Node.js开发框架Express4.x ,详细介绍了express4项目的基本内容,很好
  文章:用Nodejs连接MySQL:用Nodejs连接MySQL,介绍mysql与node基本,及数据库连接池,宕机,连接超时等node问题解决办法,node-mysql官网也有相应英文解决办法
  5.node+json:node.js里面怎么创建和解析JSON格式的文件?
  更全的是这一个How to parse JSON using Node.js? 但要注意如果require json,只加载一次,更新之后,再使用,可能还是老版本
  json不好查看的问题:读写 JSON 文件 · Issue #73 · zhanhongtao/blog · GitHub
  6.node邮件验证:Nodejs发邮件组件Nodemailer
  选择适合的Node.js授权认证策略
  7.很全的node module Modules · joyent/node Wiki · GitHub
  8.文件操作,要么官方文档:File System Node.js v0.12.2 Manual & Documentation,
  或者node基础-文件系统node.js 文件操作,有一个要注意的是 存储文件时,比如writefile写路径 要使用path.join(__dirname, “相对于当前文件路径”); 如path.join(__dirname, "../upload/recordList/" + generateID("record") + ".json");,后端要采用这种dirname的形式,前端可以直接写相对于当前文件路径的形式

node+express
1.整体介绍框架Express框架 -- JavaScript 标准参考教程(alpha)
2.express取值:使用 NodeJS + Express 從 GET/POST Request 取值
3.session+cookie:node.js web开发:EXPRESS 4.x 以上使用session和cookie 的记录
express 框架之session express-session官网 npmjs.com 的页面
Node.js Express 从入门到菜鸟(二)——Cookie+Session+三层搭建
express 4.2.0 使用session和cookies
在Express 使用session 做登录控制
去掉flash之后,可以只用session,在每次post一开始 置req.session.error为null,之后,验证过程中,检查错误再设置req.session.error,然后根据结果redirect之后,检测是否error为null,来决定是否展示
node session保存的只是中间键值对,不管赋予res.locals.user等,都不是对象,需要在中间件中重新生成对象,才能调用方法,当然如果只是使用属性值,则不需要
4.express基本的中间件官方网站:senchalabs/connect · GitHub

  node+mysql
  1.node所用的mysql官网:felixge/node-mysql · GitHub
  2.Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql)
  3.用Nodejs连接MySQL
  4.三种常用数据库(Oracle、MySQL、SQLServer)的分页之MySQL分页
  5.sq语句注意顺序,order by group by limit..一般放在where后面

  express+ejs
  1.EJS学习总结 - 双月通天的个人空间
  2.EJS 模板快速入门
  3.nodejs express template (模版)的使用 (ejs + express)_node.js 笔记
  4.ejs我的总结:
  ejs 写法:



普通传入并使用变量:<%= title %>
普通for执行js代码(for中间的代码一定可以执行到):
<% for(var i=0; i<headerNavbar.length; i++) {%>
<li><a href="/reg"><%= headerNavbar.name %></a></li>
<% } %>
特殊if语句的js代码(if中间的额代码不一定可以执行到):
<% if(active=='index'){%>
class="active"
<% }%>>

  jquery
  1.jQuery 教程
  2.jQuery工具方法 -- JavaScript 标准参考教程(alpha)
  3.在线文档-jquery
  4.jQuery设计思想!!

  jquery ui
  1.jQuery UI
  2.中文API:http://www.css88.com/jquery-ui-api/
  3.jQuery UI 实例
  4.jqueryrain神站:tabs:80+ Best jQuery Tabs with Examples
  js tree 库:15+ jQuery Treeview Plugin & jQuery Tree with Example
  jsTree

  Bootstrap:
  1.基本CSS样式 · Bootstrap v2
  2.全局 CSS 样式 · Bootstrap 中文文档 v3
  3.bootstrap row等偏移-20px
  4.补充:学会Twitter Bootstrap不再难 :从2.x升级到3.0版本

  html5
  1.drag:库:interact.js - JavaScript drag and drop, resizing and gestures with inertia and snappingDragdealer.js 教程:HTML 5 拖放HTML5 drag & drop 拖拽与拖放简介 &laquo; 张鑫旭

  git:
  1.Git:代码冲突常见解决方法
  2.使用WebStorm和Git开发Node.js应用
  3.git生成ssh key及本地解决多个ssh key的问题 写的非常清楚
  4.Generating SSH keys

  js:
  1.对象本身方法,可以用于对这类对象的工具类方法,当作对象manager方法
  对象原型中方法,用于每个不同对象实例的方法
  2.Javascript异步编程的4种方法 callback尽量写成return callback()
  3.JS对象类型的确定
  4.js取属性,一般用object.pro ,如果需要动态确定属性,可以使用 object['dynamic'+pro],动态取属性,包括session,虽然为键值对,但这样也可以

  json:
  1.jquery操作:jQuery中读取json文件

  后端更新前端:
  1.怎么使用 JavaScript 将网站后台的数据变化实时更新到前端? - 前端开发
  2.Socket.io在线聊天室
  3.迈出nodejs的第二步,用nodejs+socket.io搭建一个websocket聊天室
  4.使用Node.js实现数据推送
  5.Automattic/socket.io · GitHub
  6.Nodejs实现websocket的4种方式

  RESTFul:
  1.Pixelhandler's Blog
  2.理解RESTful架构


  杂:
  1. passportJS配置用户验证:PassportJS 配置失败:req.user 未定义
  Passport | Configure
  2.回调函数:回调函数,就是放在另外一个函数(如 parent)的参数列表中,作为参数传递给这个 parent,然后在 parent 函数体的某个位置执行。理解javascript中的回调函数(callback)_javascript技巧
  3.不再用的req.flsah():express 版本更新后遇到的问题 flash()
  4.app.locals和res.locals 图灵社区 : 阅读 : express配置项more
  5.Crypto加密解密:Node.js加密算法库Crypto
  6.在 CSS 中如何使用百分比设置页面 Div 高度? - 前端开发
  7.HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解(转载)
  8.文件上传的渐进式增强
  拖动上传 js库:Dropzone.js
  9.js diagram 需求图:JointJS - the HTML 5 JavaScript diagramming library.
  http://gojs.net/latest/index.html
  10js 网页分析:Google Analytics Official Website
  11.js network网状图 ,时间线,2d,3d 库:vis.js - A dynamic, browser based visualization library.
  12.js fileManager:10 jQuery Based File Manager Plugins
  在线富文本编辑器:RESPONSIVE filemanager 9.9.2(php tinyMCE)
  推荐:Redactor Plugins轻量且美观
  13.小型:file explore:Kloudless/file-explorer · GitHub:可以实现从多处上传,选择文件
  Cute File Browser with jQuery and PHP 美观轻量但是需要jquery ajax php
  14. js tree 库:15+ jQuery Treeview Plugin & jQuery Tree with Example
  jsTree
  15.messageBox 通知框 js库:Bootbox.js—alert, confirm and flexible modal dialogs for the Bootstrap framework
  16.【css】清除浮动(clearfix 和 clear)的用法
  六种实现元素水平居中
  17.button css库:Buttons - 一个高度可定制的按钮(button) CSS 样式库。
  18.Html 解决长串英文字母显示不能自动换行
  19.非input元素使用focus等方法:让元素获得焦点
  20.text file等在表单中同时上传时,记得表单设enctype="multipart/form-data",否则可能拿不到数据,还有一个,ajax传输data,记得设置data-type为json,尤其jstree使用ajax传输节点
  21.多文件,多图片上传预览,进度等,可以用webuploader,busboy等
  22.busboy nodejs+busboy实现文件上传https://www.npmjs.com/package/busboy
  23.前端字体:字体选择_有字库
  24.$('#btn').on('click',function(e){ e.preventDefaults(); or return false; })均能在表单提交之前阻止提交
  24.404 not found 网页设计真没见识过,原来404错误页面可以这样设计
  25.阅读以 JavaScript 编写的本地文件FileReader - Web API 接口 读写客户端本地文件
  26.chrome下 页面退出时发送ajax写法:



$(window).on('beforeunload', function ()
{
//this will work only for Chrome
$.ajax({
type:'GET',
url:'/ajaxRequest/myClassesOfteacherclose',
async:false
});
});

27.前端中下面两个的$('a').text()是不一样的,会计算空格


<a class='button'>关注</a>
<a class='button'>
关注
</a>

  性能优化:
  1.!!!毫秒必争,前端网页性能最佳实践
  2.HTML 5 应用程序缓存
  3.Lazy Load Plugin for jQuery
  
作者:宝盖头和繁弱
链接:https://www.zhihu.com/question/21567720/answer/43795625
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346637-1-1.html 上篇帖子: promise之nodejsQ的详细用法总结 下篇帖子: 前端开发工具和环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表