目录
1. Hello World
2. 创建第一个Node.js应用
3. REPL 调试Javascript
4. 回调函数
少壮不努力,老大徒伤悲。
本文为本人略读官网文档后的大略笔记,实在不适合他人阅读。
前言
Node.js : 运行在服务端的JavaScript
是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎。
安装
安装node
brew install node
查看当前node版本
node -v
1. Hello World
创建test.js (内容如下)
console.log("Hello World");
终端执行 node test.js
输出Hello World
效果图
交互模式(终端输入node)效果图
2. 创建第一个Node.js应用
Node.js应用的组成部分
1. 引入required模块
使用require指令来载入Node.js模块。
2. 创建服务器
服务器监听客户端请求。
Apache、Nginx等HTTP 服务器。
3. 接收请求与响应请求
客户端可以使用浏览器或终端发送HTTP请求,服务器接收请求后返回响应数据。
步骤1: 引入required模块
// 使用require指令载入http 模块,并将实例化的HTTP赋值给变量http
var http = require("http");
步骤2: 创建服务器
创建 server.js文件
var http = require('http');
// 创建服务器
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8088);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8088/');
终端运行 node server.js
如果运行出错,可能是端口号冲突,换一个端口即可。
运行效果
3. REPL 调试Javascript
REPL(Read Eval Print Loop:交互式解释器)
一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。
Node自带了交互式解释器,可以执行以下任务:
1. 读取
读取用户输入,解析输入了Javascript 数据结构并存储在内存中。
2. 执行
执行输入的数据结构
3. 打印
输出结果
4. 循环
循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。
退出当前终端
ctrl + c 。
按下两次 - 退出 Node REPL
ctrl + c 。
退出 Node REPL
ctrl + d -
查看输入的历史命令
向上/向下键
补全当前命令
tab 键
列出可使用命令
.help
退出多行表达式
.break
退出多行表达式
.clear
保存当前的 Node REPL 会话到指定文件
.save filename
载入当前 Node REPL 会话的文件内容
.load filename
首先,在终端输入node
可使用
1. 表达式运算
2. 变量
3. 多行语句
4. _获取上一个表达式的值
运行效果
4. 回调函数
Node 所有 API 都支持回调函数
回调函数一般作为函数的最后一个参数出现
function foo1(name, age, callback) { }
function foo2(value, callback1, callback2) { }
例1 (阻塞)
创建content.txt文件
Hello World!
Hello cx,,,
创建main.js文件
var fs = require("fs");
var data = fs.readFileSync('content.txt');
console.log(data.toString());
console.log("程序执行结束!");
终端执行 node main.js
Hello World!
Hello cx,,,
程序执行结束!
例2 (非阻塞)
创建content.txt文件
Hello World!
Hello cx,,,
创建main.js文件
var fs = require("fs");
fs.readFile('content.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("程序执行结束!");
终端执行 node main.js
程序执行结束!
Hello World!
Hello cx,,,
5. 事件循环
待续。。。。。
网友评论