初见 nodejs
来源:互联网 发布:php网站提权 编辑:程序博客网 时间:2024/06/05 10:41
安装
nodejs
node-v5.7.0-x64.msi
nvm
为了方便切换nodejs的多个版本,可以采用多版本管理器。
Node Version Manager(Node版本管理工具)
环境变量的配置
NVM_HOME = 当前 nvm.exe 所在目录NVM_SYMLINK = node 快捷方式所在的目录PATH += %NVM_HOME%;%NVM_SYMLINK%;NVM_HOMEC:\nvm\NVM_SYMLINKC:\Program Files\nodejsPATH%NVM_HOME%;%NVM_SYMLINK%;
python
一些概念
CommonJS
为了统一 JavaScript 在浏览器之外的实现,CommonJS 诞生了。CommonJS 试图定义一套普通应用程序使用的API,从而填补 JavaScript 标准库过于简单的不足。CommonJS 的终极目标是制定一个像 C++ 标准库一样的规范,使得基于 CommonJS API 的应用程序可以在不同的环境下运行,就像用 C++ 编写的应用程序可以使用不同的编译器和运行时函数库一样。
第一个js程序
REPL模式
REPL (Read-eval-print loop),即输入—求值—输出循环。Node.js 也有这样的功能,运行无参数的 node 将会启动一个 JavaScript的交互式 shell
$ node> console.log('Hello World');Hello Worldundefined> consol.log('Hello World');ReferenceError: consol is not definedat repl:1:1at REPLServer.eval (repl.js:80:21)at repl.js:190:20at REPLServer.eval (repl.js:87:5)at Interface.<anonymous> (repl.js:182:12)at Interface.emit (events.js:67:17)at Interface._onLine (readline.js:162:10)at Interface._line (readline.js:426:8)at Interface._ttyWrite (readline.js:603:14)at ReadStream.<anonymous> (readline.js:82:12)
进入 REPL 模式以后,会出现一个“>”提示符提示你输入命令,输入后按回车,Node.js将会解析并执行命令。如果你执行了一个函数,那么 REPL 还会在下面显示这个函数的返回值,上面例子中的 undefined 就是 console.log 的返回值。如果你输入了一个错误的指令,REPL 则会立即显示错误并输出调用栈。在任何时候,连续按两次 Ctrl + C 即退出 Node.js 的 REPL 模式。
简单 HTTP 服务器
// 定义服务器var http = require('http');http.createServer(function(req,res) { // HTTP 协议响应头 res.writeHead(200, {'Content-Type': 'text/html'}); // 服务器返回的数据 res.write('<h1>nodejs</h1>'); // 数据发送结束 res.end(); // 监听3000接口}).listen(3000);console.log("Http server is listen 3000");
执行如下代码:
node app.js
打开浏览器,访问 http://localhost:3000/,即可看到服务器返回的页面。
文件监听工具
// 安装npm install -g supervisor// 执行文件supervisor app.js
事件与事件式编程
采用事件通知的方式来处理 I/O,服务器 等
模块
模块是 nodejs 中的基本组成成分,一个文件就是一个模块。在node中,模块可能是 JS代码,JSON 或者 编译过的 C/C++ 扩展。
定义模块 module.js
// 模块的成员变量var name = '';// 模块的成员方法exports.setName = function(myName) { // 可以使用名字 name = myName;}// 模块的成员方法exports.sayHello = function() { console.log('Hello ' + name);}
使用模块:
var myModule = require("./module.js");myModule.setName("Jack");myModule.sayHello();
【注意】 require 不会重复加载模块。获取的模块都是同一个。
包管理器
npm [install/i] [package_name]例如:npm install express会将包安装到当前目录下的 node_modules 目录下// 全局安装,将模块安装到系统目录下npm install -g express
调试
命令行调试
// 进入调试模式node debug app.js// 常用命令run 执行脚本,在第一行暂停restart 重新执行脚本cont, c 继续执行,直到遇到下一个断点next, n 单步执行step, s 单步执行并进入函数out, o 从函数中步出setBreakpoint(), sb() 在当前行设置断点setBreakpoint(‘f()’), sb(...) 在函数f的第一行设置断点setBreakpoint(‘script.js’, 20), sb(...) 在 script.js 的第20行设置断点clearBreakpoint, cb(...) 清除所有断点backtrace, bt 显示当前的调用栈list(5) 显示当前执行到的前后5行代码watch(expr) 把表达式 expr 加入监视列表unwatch(expr) 把表达式 expr 从监视列表移除watchers 显示监视列表中所有的表达式和值repl 在当前上下文打开即时求值环境kill 终止当前执行的脚本scripts 显示当前已加载的所有脚本version 显示 V8 的版本
远程调试
如下的命令没有测试成功,因为这在实际开发中也用不太到,所以过滤掉。
node --debug[=port] script.jsnode --debug-brk[=port] script.jsnode app.jsnode --debug-brk app.jsnode --debug 127.0.0.1:5858
资源
http://nodejs.org/api/
标准的nodejs接口文档
https://www.byvoid.com/en/project
《NodeJS开发指南》源代码
http://cnodejs.org/
中国nodejs开发者论坛
- nodejs初见
- 初见 nodejs
- 初见
- 初见
- 初见
- 初见
- 初见
- 初见 Catalyst
- Hadoop初见
- 初见端倪
- 初见面
- 初见python
- usb初见
- 初见CSDN
- 初见gdb
- Gstreamer初见
- 初见Android
- 初见数据库
- python3.5 运行pip报错
- 开博小记
- MyBatis Generator 源码分析
- Leetcode-Algorithms Add Two Numbers
- 串口显示
- 初见 nodejs
- UML系列图--用例图
- 34. Search for a Range
- nodejs 的基本使用
- Spring学习笔记专题一
- 如何正确搭建能远程访问你的SVN服务器(亲测有效)
- Qt for Android获取手机热点开关状态
- 时钟问题造成的hive运行错误
- 刚开,纪念一下