nodejs 笔记

一些资源

笔记

$ wget http://nodejs.org/dist/v0.12.2/node-v0.12.2.tar.gz
$ tar zxvf node-v0.12.2.tar.gz
$ cd node-v0.12.2
$ ./configure
$ make
# make install 

make install 需要通过 "root" 用户来执行,默认安装路径为 /usr/local/bin,执行文件为node。

  • 查看版本:node -v  或者 node --version (注意:后者是双-)
  • 什么是REPL: Real-Eval-Print-Loop 可交互运行环境。
  • 如何进入REPL模式: node 回车即可
    • .break (或者CTRL + C)
    • .clear 清除上下文对象中保存的变量与函数
    • .save <file name>
    • .load <file name>
    • .exit (或者CTRL+C两次,或CTRL+D一次)或者 process.exit()
  • 如何进入debug模式: node debug <script file>
    • continue : cont | c
    • next: next |  n
    • step into : step | s
    • out debug: out | s
    • watch | unwatch (<expression>)
    • 其它实用命令:
      • setBreakpoint | sb ([filename], [line number])
      • clearBreakpoint | cb ([filename], [line number])
      • backtrace | bt
      • list(n) 用于指定查看当前所要执行代码前后多少行的代码
      • repl 进入REPL运行环境
      • restart 重新开始脚本调试
      • kill 终止脚本调试
      • run 在kill之后,使用run重新开始脚本调试
      • scripts 在加载一些模块后,用此查看所有被加载的模块文件名称(不包括Node.js的内置模块)
      • version 查看V8 JavaScript引擎的版本号
  • Node.js+npm安装 http://ju.outofmemory.cn/entry/40865
    • 可以从这里面找到最新的npm文件: http://nodejs.org/dist/npm/
    • 安装node-inspector命令: npm install -g node-inspector
    • 使用node-inspector首先在窗口中输入命令:  node --debug-brk[=port] <script.js>
      其次打开新的窗口输入命令:node-inspector
      最后:在浏览器中输入显示的地址进行调试。
  • Process 属性
    • execPath  
    • version
    • versions 获取Node.js 及其各依赖的版本号。
    • platform
    • stdin | stdout | stderr
    • argv 包含应用程序名(即node)及其它参数的数组。例如:

      D:MyApps ode>node gitproject1srcmyserver.js port=1137
      [ 'node', 'gitproject1srcmyserver.js', 'port=1137' ]

    • process.argv.forEach(function(val, index, array) {console.log(index + ': ' +val );});
    • env
    • config 该对象包含了用于编译当前Node应用程序的可执行文件配置选项的javascript描述。
    • pid
    • title 运行node.js命令窗口的标题,可读可写。
    • arch 运行Node.js的处理器架构。如arm, ia32, x64.
  • process 方法
    • memoryUsage()
    • nextTick(callback) 用于将一字函数推迟到代码中所书写的下一个同步方法执行结束或异步方法的事件回调函数开始执行时调用。效果与setTimeout(callback, 0)类似,但性能更优。可实现对方法的递归调用。
      process.nextTick(function foo() { process.nextTick(foo); });  //注意:死循环。
    • process.exit([mode])
    • process.abort()
    • process.kill(pid, [signal])
    • process.cwd() 查看当前工作目录
    • process.chdir(<directory>) 修改当前工作目录
    • uptime() 运行时间
    • hrtime([time to diff]) 可用于测试一段代码的运行时间。值是数组,元素0单位是秒,元素1单位是纳秒。
    • uncaughtException 事件
  • npm 模块管理工具
    npm install [-g] <package name>
    npm install body-parser --save #save option will update it as a dependence to package.json file
  • 当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里(dependencies)。

    -savesave-dev可以省掉你手动修改package.json文件的步骤。
    spm install module-name -save 自动把模块和版本号添加到dependencies部分
    spm install module-name -save-dve 自动把模块和版本号添加到devdependencies部分

    至于配置文件区分这俩部分, 是用于区别开发依赖模块和产品依赖模块, 以我见过的情况来看 devDepandencies主要是配置测试框架, 例如jshint、mocha。

  • npm install takes 3 exclusive, optional flags which save or update the package version in your main package.json:
    -S, --save: Package will appear in your dependencies.
    -D, --save-dev: Package will appear in your devDependencies.
    -O, --save-optional: Package will appear in your optionalDependencies.
  • 如果安装模块的过程中报域名错误的话,请清空缓存 >npm cache clean 或重启计算机即可。
  • npm init
  • npm start
    • npm update -g npm 进行npm升级
      • https://docs.npmjs.com/files/package.json#version
  • 针对nodejs 在 LINUX 下的一些基本操作
    • 后台启动: 成功之后会显示一个进程号PID
      nohup node xxx.js > /tmp/nodelogs/app.logs &   
    • nohup node wwwfswebapi/myserver.js port=9090 > wwwfswebapi_log/app.log 2>&1 &

    • jobs : 命令显示了当前 shell 环境中已启动的作业状态
    • 查看进程: file /proc/{PID}/exe 或者   ps -aux | grep node
    • 停止: kill -s QUIT {PID}  #优雅一点的停止方式
 
No Action

Mouse Gestures

Back

Forward

Scroll Up

Scroll Down

Switch To Previous Tab

Switch To Next Tab

Close All Tabs Except Current

Close Current Tab

Open New Tab

Close All Tabs

Refresh Current Tab

Stop Loading

Scroll to Bottom

Scroll to Top

Scroll Left

Scroll Right


test account for wechat development
原文地址:https://www.cnblogs.com/swlin/p/4307594.html