node day1 study

node.js 是什么

  • node.js 是 JavaScript 运行在服务器时的环境
  • 相当于将 Chrome 浏览器的 v8 引擎移植到服务器上, 使 JavaScript 成为一门全栈语言
  • node 的优势:
    • 可以读写服务器的文件
    • 构建网络服务, 网络通信, HTTP 服务器
    • node 使用事件驱动 (event-driven) 和 非阻塞 IO 模型(non-blocking), 支持异步操作, 常用来处理高并发事件
    • 轻量和高效
    • 拥有世界上最大的开源生态系统 npm

服务器文件读写模块 fs

1. 模块引用

    var fs = require('fs')

2. 模块常用方法

  • fs.readFile(path, callback(error, data))
    • data 用来是二进制数据, 可以通过 toString () 方法来转为可读字符串
    • path 为文件路径
  • fs.readdir(path, callback(err,data))
    • 该方法可读取 path 所指的路径
    • data 是 Array 型

http 模块

1. 模块引用

    // 使用 require 引用 http 模块, 返回值为 http 对象
    var http = require('http');

2. 服务器创建

   // 通过此方法可创建服务器 
   var server = http.createServer();

3. 设置程序端口号

    server.listen(3000,() => {
            console.log('启动服务器成功, 可以通过 http://127.0.0.1:3000/ 进行访问');
    })

4. 监听客户端请求并进行响应

   server.on ('request', (request, response) => {
       console.log('收到客户端的请求了');

       // 可通过 request 对象判断请求的Url 和请求头等等
       const url = request.url;
       if (url == '/') {
           // 利用setHeader 设置响应头信息, Content-Type: 用于说明响应内容的格式以及编码, 具体格式可查阅: https://tool.oschina.net/commons
           response.setHeader('Content-Type', 'text/plain; charset=utf-8')
           response.write('首页');
           response.end('Hello NODE');
       } else if (url == '/html') {
           // 可利用 fs 模块的readFile 方法读取 .html 文件并发送给客户端
       } else {

       }
   })