node学习笔记(一)

Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。

学习视频:https://www.bilibili.com/video/av12300358/index_2.html#page=5

why?

1.性能 2. js配合紧密 , 3.便于前端学习 安装

1.preparing:

  1. c:
  2. cd 文件名
  3. node xxx.js 运行

2.node--服务器

http协议

request               请求 输入-请求信息

response             相应 输出-浏览器信息

3.fs

异步vs同步

readFile(文件名, callback(err, data))

writeFile(文件名, 内容, callback)

请求    数据

get     <32k

post    1G

4.GET数据解析

1.querystring 返回json   .parse(‘a=1&b=2’)

2.url 返回json urlLib = url.parse(user?id=2&name=a’, true)   query/pathname

3.自己切

5.POST 数据解析

很大--分段

  1. data --有一段数据到达(n)
  2. end --数据全部到达(一次)

6. 实例http/fs/get/post

用户登录、注册

接口:

/user?act=reg&user=aaa&pass=123456

{“ok”: false, “msg”: “原因”}

/user?act=login&user=aaa&pass=123456

{“ok”: true, “msg”: “原因”}

==================================================================

//对文件访问 html/js/jpg

// 对接口访问

7. 模块化:

getserver

  1. 系统模块:

Crypto 加密

Events 事件

Net 网络操作

OS 操作系统信息

Path 处理文件路径

Stream 流操作

Timers 定时器 interval settimeout

Zip 压缩

Util工具 VM虚拟机

Require 使用, 引入系统模块;

------------------------------------------------------------------------------------------------------

  1. 自定义模块

A . 模块组成

B. Npm

C. 发布自己的模块

// require —引入其他模块

// module - 批量输出

// exports - 单个对外输出

注意:

nodejs,引入自己的模块,路径加“./”;.js可省略;没有全局变量,自动包起来(function(require, expots, module){})();

True,  module.exports = exports;


npm:包管理器

  1. 统一下载途径
  2. 自动下载依赖

Npm install xx         安装

Npm uninstall xx     卸载


Node_modules ———放模块

require 1.若有’./’, 从当前模块找

  1. 没有,先从系统模块;再从Node_modules找

注意: 自定义模块统一放到Node_modules里



如何 发布自己的npm插件?

Npm注册帐号,

npm login

npm whoami

创建者:

npm init

发布:登录查询npm无重名包,npm publish, 再次发布注意更改版本号

删除: npm —force unpublish

(24小时内,否则邮箱申请删除)

使用者:

下载: npm install xx

更新:npm update xx

node 初学

http://www.cnblogs.com/alice-fee/p/6159615.html

原文地址:https://www.cnblogs.com/alice-fee/p/8250949.html

时间: 2024-10-08 11:36:04

node学习笔记(一)的相关文章

Node学习笔记(四):gulp+express+io.socket部署angularJs2(填坑篇)

这篇就先暂停下上篇博客--你画我猜的进度,因为在做这个游戏的时候,想采用最新的ng2技术,奈何坑是一片又一片,这边就先介绍下环境部署和填坑史 既然要用ng2,首先要拿到资源,我这边用的是angularJs2 beta版的,网上的资源有两种,一个是文件全压缩版的.min.js版的另一个就是一大堆乱七八糟的js文件,主要是ng2已经完全采用TypeScript,加之对es6的支持,所以需要引入一大堆兼容,编译文件 这边刚好特别手欠想学学gulp,于是开搞配置gulp环境,压缩所有的js文件成一个mi

node学习笔记-搭建node环境

最近项目要用到node,利用空闲整理做下笔记 第一步  安装node,方式比较多,最为直接的是直接去官网     可直接从官网下载安装http://nodejs.cn/download/ 根据自己情况选择相应的版本安装 第二步   测试是否安装成功 打开命令终端,这样就算安装成功了 node -v v4.2.5 第三步   安装node最好用的框架 express,详情移步 http://www.expressjs.com.cn/ $ npm install express --save 准备工

node 学习笔记

以下笔记默认安装完成node 及npm 1.安装express 新版本的express-generator已经独立出来,全局安装这个包就ok. npm install express-generator -gd 2.新建一个文件夹并进入 3.执行express -e 初始化项目 4.npm install 安装项目依赖包 5.npm start 启动项目 6.为省去每次调试都要手动kill process然后重启项目的麻烦 可以安装superviser views文件夹下 .ejs 改为.htm

Node学习笔记(三):基于socket.io web版你画我猜(一)

经过惨淡的面试,也是知道了自己的不足,刚好最近在学习node,心中便有了做一个web版的你画我猜的想法 首先说下思路,在做准备工作的时候,有两个大概的思路: 1.规定一块div,捕捉鼠标事件,动态生成position absolute,长宽1px的红色小div,这样可以模拟出划线的轨迹,做一个long polling,不断获取DOM结构,推送到socket端口,然后再广播给所有客户端 2.利用canvas作图,将canvas的数据推送到socket端口,广播所有客户端 其实之所以有两种想法,无非

node学习笔记_04 express相册

学习node用express框架做了一个相册展示及上传功能: 1.没有连接服务器,这里全部是操作文件夹 2.安装上传文件的依赖formidable,npm install --save formidable github地址:https://github.com/zuomm/photo 下面整理下项目创建过程: 一.npm init 生成packege.json项目依赖的环境 二.自行创建文件夹结构 ——controller  只负责方法罗列 —route.js   路由只是方法罗列,具体业务写

将js进行到底:node学习笔记5

HTTP开发之Connect工具集--中间件 继学习node.js的TCP API和HTTP API之后,node.js web开发进入了正轨,但这就好像Java的servlet一样,我们不可能使用最基础得Servlet对象去写网站,我们也不能使用最基本的node http API去写一个完整得网站,我们需要更加强大得工具集,web套件,甚至是web开发框架(诸如Java下的Spring MVC),来提供开发者更人性化得web开发环境. 创建网站的基本任务--为何要有中间件 独立托管静态文件,诸

cocos代码研究(1)Node学习笔记

理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteBatchNode,MenuItem,ClippingNode,DrawNode,ParticleBatchNode, ParticleSystem等都是继承自Node类. 代码部分 父子节点关系API virtual void addChild (Node *child)添加一个子节点到容器内,z-

node学习笔记

1.Node,可以让javascript运行在服务器端的平台. 是一个为实时Web(Real-time Web)应用开发而诞生的平台.充分考虑了实时响应,超大规模数据要求下架构. 2.摒弃了传统平台依靠多线程来实现高并发的设计思路,而采用了单线程.异步式I/O,事件驱动式的程序设计模型. 不仅带来了巨大的性能提升,还减少了多线程程序设计复杂性,进而提高了开发效率. 3.单线程事件驱动的异步I/O. 单线程事件驱动的异步I/O比传统的多线程阻塞式I/O到底好在哪里:简而言这,异步式I/O少了多线程

Node学习笔记(二):事件驱动

接触Node,提得最多的可能就是回调,异步非阻塞处理,思前想后,JavaScript从前端语言过渡到服务器端,最大的劣势可能就是线程,当然这方面的不足现在也被慢慢弥补起来了(很多第三方的npm包可供下载),而在初期时,其语言的执行思想也是偏向多线程的,于是用了一个非常巧妙的方法:事件驱动. Node.Js使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求.当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户.这个模型非常高效可