Node.js学习笔记
以下是NodeJS学习过程中整理的知识点
JavaScript与Node.js
Node.js是一个基于谷歌的V8Javascript引擎,并执行该引擎的开发框架。
server.js:静态的HTTP服务器(了解请求、响应和服务器对象)Node.js学习笔记(服务器JS、基于事件驱动的回调、定时器)
-
var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); }).listen(3000);
进行函数传递
-
var http = require("http"); function onRequest(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); } http.createServer(onRequest).listen(3000);
基于事件驱动的回调
我们创建了一个服务器,并且向创建它的方法传递了一个函数。无论何时我们的服务器收到一个请求,这个函数就会被调用。
服务器是如何处理请求的
当收到请求时,使用response.writeHead()函数发送一个HTTP状态200和HTTP头的内容类型(content-type),使用response.write()函数在HTTP相应主体中发送文本“Hello World”。最后,我们调用 response.end() 完成响应。
服务器端的模块
把某段代码变成模块意味着我们需要把我们希望提供其功能的部分导出到请求这个模块的脚本。
代码修改如下:
-
var http = require("http"); function start() { function onRequest(request, response) { console.log("Request received."); response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); } http.createServer(onRequest).listen(8888); console.log("Server has started."); } exports.start = start;
定时器
setTimeout 和 clearTimeout
setTimeout 用于设置一个回调函数 cb,其在最少 ms 毫秒后被执行(并非在 ms 毫秒后马上执行)。setTimeout 返回值可以作为 clearTimeout 的参数,clearTimeout 用于停止定时器,这样回调函数就不会被执行了。
setInterval 和 clearInterval
setInterval 和 setTimeout 类似,不过 setInterval 会在每 ms 毫秒后(并非精确的 ms 毫秒后)执行一次 cb。setInterval 返回值可以作为 clearInterval 的参数,clearInterval 用于停止定时器,这样回调函数就不会被执行了。
文件系统(文件写入、读取)
var fs = require('fs')