浅析nodejs

  1. node版本管理
    1. windows <--->  nvmw
    2. linux  <---> nvm
  2. 发布自己的npm包 --->npm package manager
    1. 先创建一个文件
    2. 创建package.json  npm init -y
    3. npm adduser  先添加一个用户,注册登录到npmjs.org网站
    4. npm whoami  查看当前用户是哪一个
    5. npm publish   发布    注:每次发布都要改一下版本号
    6. 可以到npmjs网站查看npm包
  3. a.js  --->  module.exports = People     require('a.js')
  4. require('./myPackage')  通过包引入js   默认找到index.js  规范的话myPackage文件夹下会有一个package.json文件
  5. global.global 还是指向global  
  6. console
    1. 类 log、info、warn、timeEnd、time、trace(打印调用堆栈)、assert(断言 测试用  assert(false,msg) 为false则打印msg )、dir、error、
    2. 实例 -->console类标准输出和标准错误的实例
  7. 调试
    1. node debug test.js
    2. node-inspector  安装
      1. npm install node-inspector -g 
      2. which node-inspector  查找在哪个目录下
      3. node-debug test.js
    3. node-inspector --web-port=9990   
      1. node-inspector --web-port=9990 & 后台运行
      2. node --debug test.js   开始调试 
      3. node --debug-brk test.js   结束调试
  8. 工具:webstorm
    1. 配置run node
      1. file-setting  搜索node 找到Node.js and NPM   配置Node interpreter: B:\soft\nodejs\node.exe    
      2. js文件内右键  run hello.js就可以   
    2. 配置提示补全  
      1. configure...  下载核心模块
      2. 安装好了之后,相同位置会出现 Edit usage scope   点击   配置node相关
  9. nodejs和javaScript异同
    1. 同:数据类型定义、语法结构、内置对象
    2. 异:顶层对象   js:windows  node:global
    3. 异:var a = 100  js可以window.a 访问到   node global.a undefined
  10. 模块
    1. 一个文件就是一个模块,每个模块都有自己的作用域
    2. __filename:当前模块文件被解析过后的绝对路径   属于当前模块作用域内 非全局  文件的
    3. __dirname:当前模块所在目录解析后的绝对路径   属于当前模块作用域内 非全局  文件夹的
    4. 模块加载系统
      1. require('js文件')    
        module.export = '模块'
      2. 两个模块之间的var变量不能互相访问,想在一个模块之中访问另一个模块中的变量
        1. 把变量作为global对象的一个属性(不推荐,尽量减少全局变量)
        2. 使用模块对象module:保存和当前模块有关的一些信息
        3. module有一个子模块:exports:把一个模块中的局部变量进行提供访问
          1. module.export.a = a
        4. 在模块作用域内,还有一个内置的模块对象:exports,其实就是module.exports
        5. module.exports===exports //true
        6. module.exports 和 exports的区别:
          1. module.exports 初始值为一个空对象 {}
          2. exports 是指向的 module.exports 的引用
          3. require() 返回的是 module.exports 而不是 exports
        7. 如果 module.exports = [1,2,3]  //exports和module.exports的指向关系已经断开了,export.a = 200 添加的a属性就不能反应在 module.exports 上。反过来同理。
  11. process:全局对象  a模块和b模块是相同的  使我们可以对当前运行的程序的进程进行访问和控制
  12. buffer:更好的操作二进制数据的类
    1. buf.write(要写入的字符串,从buffer对象中的第几位开始写入,写入的字符串的长度,写入的字符串的编码方式)
    2. buf.toString(编码方式,第几位开始,结束位(不包含))
  13. FileSystem
    1. var fs = require('fs')
    2.  fs.open(要打开的文件的路径,打开文件的方式(读,写),设置文件的模式(读/写/执行 4/2/1 ),回调(err(文件打开失败的错误保存在err里面,如果成功err为null),fd(被打开文件的标识,与setTimeout返回的标识类似)))  异步的
    3. fs.openSync(要打开的文件的路径,打开文件的方式(读,写),设置文件的模式(读/写/执行 4/2/1 )) 同步的
    4. fs.read(fd(通过open成功打开一个文件的编号),读取到buffer对象,把读取的内容填充到buffer对象起始的位置,填充到buffer中内容的长度,文件的第几位开始读取(可为null),回调(err,buffer长度,buffer对象))  异步的 也有同步版本
    5. fs.write(fd(通过open成功打开一个文件的编号),要写入的buffer对象,把写入的内容填充到buffer对象起始的位置,填充到buffer中内容的长度,文件的第几位开始写入(可为null),回调(err,写入的buffer长度,写入的buffer对象))  异步的 也有同步版本
        1. fs.write(fd(通过open成功打开一个文件的编号),字符串, 文件中的写入的位置,编码,回调(err,写入的buffer长度,写入的buffer对象)) 异步的 也有同步版本
    6. fs.close(fd,回调) 关闭 异步的 也有同步版本
    7. fs.writeFile(filename,内容(可buffer可字符串),回调)   文件 有覆盖 无新建  异步的 也有同步版本
    8. fs.appendFile(filename,内容(可buffer可字符串),回调)  将内容加到文件后边 文件无新建   异步的 也有同步版本
    9. fs.exists(filename,回调(isExists(true/false)))  检查文件是否存在   异步的 也有同步版本
    10. 同步写法实例:
    11. fs.readFile(filename,读取模式,回调(err,data(buffer对象)))    异步的 也有同步版本
    12. fs.unlink(filename,回调(err )  删除的方法     异步的 也有同步版本
    13. fs.rename(oldName,newName,回调)    异步的 也有同步版本
    14. fs.stat(filename,回调)    读取文件状态信息     异步的 也有同步版本    
    15. fs.watch(所要监听的文件,回调(变化的事件名,文件名))
    16. fs.mkdir(path,模式,回调) 创建文件夹   异步的 也有同步版本    
    17. fs.readdir(目录,回调(err,fileList))   读取文件夹        异步的 也有同步版本    
  14. HTTP
    1. var http = require("http")   创建一个服务
    2. 通过http模块下的createServer创建并返回一个web服务器对象  var server = http.createServer();
    3. server.listen();  开启服务器的工作    端口号  默认监听所有网卡过来的数据
    4. server.address()  
    5. server.on('error',function(err){  })  监听错误信息
    6. server.on('listening',function(){  })  监听
    7. server.on('request',function(req , res){ res.writeHead(200,'OK',{'content-type':'text/html;charset=utf-8'}); res.write('hello');res.end() //告诉服务器已经完成,必须最后且调用  })  监听    也可以写在createServer回调里面
    8. server.on('response',function(){  })  监听
  15. url  url.parse()
  16. post get
posted @ 2017-04-23 17:39  Caraxiong  阅读(135)  评论(0编辑  收藏  举报