node学习尝试

早上看了张丹大牛博客文章nodeJS学习路线图和node从零入门系列,感觉获益匪浅,尝试了里面几项内容,对node有了更深入的认识。

npm

npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。常用命令:

1、npm install moduleNames:安装Node模块
安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。
注意:node的安装分为全局模式和本地模式。
一般情况下会以本地模式运行,包会被安装到和你的应用程序代码的本地node_modules目录下。
在全局模式下,Node包会被安装到Node的安装目录下的node_modules下。全局安装命令为npminstall−gmoduleName。获知使用npm set global=true来设定安装模式,$npm get global可以查看当前使用的安装模式。

代码中,直接通过require()的方式是没有办法调用全局安装的包的。全局的安装是供命令行使用的
npm install --save
安装的同时,将信息写入package.json中项目路径中如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包,这样代码提交到github时,就不用提交node_modules这个文件夹了。
2、npm list:查看当前目录下已安装的node包
注意事项:Node模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中的node_modules下的内容。$ npm list parseable=true可以目录的形式来展现当前安装的所有node包
更多命令请参看npm官方文档:https://www.npmjs.org/doc/

express

类似于SSH中的Struts,最新为4.x版本,不能完全兼容3.x版本,可以很方便的生成项目架构.

Redis

尝试了文章中一些例子,发现里面很多用了MongoDB,就想学习下这个文档型数据库。

  • 好处是:简单快速,海量数据存储;类似JS查询形式;简单文档类似关系数据中行记录,一组文档构造成集合(类似关系数据表),一组集合构成数据库(可以做独立权限控制等)
  • 坏处是不支持事务,数据可能会丢失;并且搜索网上博客文章它并不如一个分支Tx和Postgresql;并且向去它官网下载总是报错,安装包大小也远大于Pgsql,后放弃用它,计划用Redis和Pgsql代替之。
    尝试用Redis代替MongoDB的session缓存实现,感觉Redi初体验很好;
  1. 安装包很小,1M多,启动后就可以工作;
  2. 操作也简单,支持缓存,数据持久化,在一些简单领域可当数据库用。
  3. 需要用以下两个模块引入:

    1. var session = require('express-session')
    2. ,SessionStore = require('connect-redis')(session);
    3. var store = new SessionStore({
    4. host: '127.0.0.1',
    5. port: '6379'
    6. });
    7. var store = new SessionStore({
    8. host: '127.0.0.1',
    9. port: '6379'
    10. });

    Session是什么?

Session 是面向连接的状态信息,是对 Http 无状态协议的补充。

Session 怎么工作?

Session 数据保留在服务端,而为了标识具体 Session 信息指向哪个连接,需要客户端传递向服务端发送一个连接标识,比如存在Cookies 中的session_id值(也可以通过URL的QueryString传递),服务端根据这个id 存取状态信息。

在服务端存储 Session,可以有很多种方案:
1.内存存储
2.数据库存储
3.分布式缓存存储
随着网站规模(访问量/复杂度/数据量)的扩容,针对单机的方案将成为性能的瓶颈,分布式应用在所难免。所以,有必要研究一下 Session 的分布式存储。

git

在尝试socket.io时官网无法打开,后上github下载,在按说明文档操作,进入目录下执行npm install命令时发现包git找不到失败,下载git客户端便携版加入环境变量后解决。

使用MarkDown

今天看很多说明文档都是.md格式的,也再次意识到md的流行和方便,故决定在后面写文章时坚持使用md形式。

wiz笔记md插件安装

https://github.com/akof1314/Wiz.Editor.md
是一个很方便的md插件,最吸引我功能是右边可实时显示,但在github下载Wiz.Editor.md.wizplugin后不知道怎么安装,尝试按网上说的拖到wiz上,或者用wiz打开插件都无法正常安装,最后把文件解压放到wiz笔记插件包里,解决了问题。

2015第40周一Node学习的更多相关文章

  1. 2015第40周二Node学习

    node历史 今天看cnode开源项目用了io.js,在查这个项目时发现这篇文章node历史,node.js和io.js关系谈到Node.js的由来,不可避免要聊到它的创始人Ryan Dahl.在20 ...

  2. [学姿势]实验室搬砖+node学习

    这周开始进行收尾工作,我当然没有进行核心技术的开发,主要负责的是对web端进行展示上的修修补补,主要包括添加VLC播放器.rtsp视频流以及一些js细节. 1.VLC 全称为Video Lan Cli ...

  3. node 学习资料

    Node 学习资料: 资料名称 网址 Node.js 中文API文档 http://nodejs.cn/api/ Node 菜鸟教程 http://www.runoob.com/nodejs/node ...

  4. Node学习HTTP模块(HTTP 服务器与客户端)

    Node学习HTTP模块(HTTP 服务器与客户端) Node.js 标准库提供了 http 模块,其中封装了一个高效的 HTTP 服务器和一个简易的HTTP 客户端.http.Server 是一个基 ...

  5. node学习笔记第一天

    ES6---* JavaScript语言随着使用的人越来越多,ECMA语法规范:if/else* 为了让js语言更适应大型应用的开发.旨在消除一些怪异的行为 ### 包含内容(strict严格模式)- ...

  6. Node学习图文教程之express重写留言本案例

    写在前面 小伙伴们大家好,我是你们的pubdreamcc,接着前面的学习,这篇博文出至于我的GitHub仓库:Node学习教程资料,如果你觉得对你有帮助,欢迎star,你们的点赞是我持续更新的动力,谢 ...

  7. Node学习(二) --使用http和fs模块实现一个简单的服务器

    1.创建一个www目录,存储静态文件1.html.1.jpg. * html文件内容如下: 12345678910111213 <html lang="en">< ...

  8. node 学习笔记 - Modules 模块加载系统 (1)

    本文同步自我的个人博客:http://www.52cik.com/2015/12/11/learn-node-modules-path.html 用了这么久的 require,但却没有系统的学习过 n ...

  9. node 学习笔记 - path 处理

    本文同步自我的个人博客:http://www.52cik.com/2015/12/04/learn-node-path.html path 模块是 node 用于整理.转换.合并路径的神器,只要是路径 ...

随机推荐

  1. 【转载】Shared Configuration

    Introduction The Internet changes the ways in which companies handle their day-to-day business and h ...

  2. SQL Server Management Studio 使用作业实现数据库备份

    1.数数据库备份脚本: 数据库备份:DECLARE @BcpFile VARCHAR(30),@SQLBACKUP VARCHAR(1000),@BcpFullFile VARCHAR(100) SE ...

  3. android入门系列- TextView EditText Button ImageView 的简单应用

    第一篇原创,其实自己就是一菜鸟,简单分享点基本知识吧.希望能有所帮助吧. TextView EditText Button ImageView 这几个控件可能是Android开发中最常用.最基本的几个 ...

  4. 【转】无废话WCF系列教程

    转自:http://www.cnblogs.com/iamlilinfeng/category/415833.html     看后感:这系列的作者李林峰写得真的不错,通过它的例子,让我对WCF有了一 ...

  5. PHP+MySQL中对UTF-8,UTF8(utf8),set names gbk 的理解

    问题一:在我们进行数据库操作时会发现,数据库中表的编码用的是utf-8,但是在进行dos命令是要使用set names gbk (一)Mysql中默认字符集设置有四级:服务器级,数据库级,表级,和字段 ...

  6. asp.net在应用母版的页面下采用了ModalPopupExtender弹出窗中应用autocomplete

    autocomplete是jqueryUI的一个插件,可以实现自动填充的功能. 要点:1.应用了母版页,所以取页面上控件的ID时与一般方法不同 2.由于用了ajax的updatepanel,所以会出现 ...

  7. JQuery解析XML数据的几个例子

    用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做.下面我们来总结几个使用JQuery解析XML的例子. 第一种方案: <script ty ...

  8. 我和CPP的第二次约会

    1.变量之间的运算形式依赖于变量的数据类型,如i = i + j;当 i 和 j 是整型或者浮点型,则代表两个数的相加,如果是第一章所说的Sales_item类型,那么就是这两个变量的成分相加(如果书 ...

  9. 使用Python操作Redis

    1. 安装pyredis 首先安装pip   1 2 3 4 5 6 7 8 <SHELL># apt-get install python-pip ...... <SHELL> ...

  10. Library:python-memcached on Windows

    1 install memcached 1.4.4 Windows 32-bit  2 cd into the base file and type memcached.exe -d install ...