Nodejs

Node.js 第一天

2018-10-16  本文已影响186人  前端好有趣

1、node.js 介绍

node.js 是什么?
node.js 和浏览器中的 JavaScript 的区别
  1. 浏览器中的 JavaScript
    • EcmaScript
    • BOM
    • DOM
  2. Node.js
    • EcmaScript
      • 变量
      • 方法
      • 数据类型
      • 内置对象(Array、Object、Date、Math ...)
    • 在 Node 这个 JavaScript 执行环境中,为 JavaScript 提供了一些服务器级别的操作 API(模块)
      • 文件读写模块
      • http(网络)服务模块
      • os 操作系统模块
      • path 路径操作模块
      • 等处理...
V8引擎
node.js的特性
npm
node.js 能做什么?
预备知识
能学到啥?

2、起步

安装
执行
注意
特点
模块介绍(API)
  1. NodeJavaScript 提供了很多服务器级别的 API,这些 API 绝大多数都被包装到了一个具名的核心模块中了。

  2. 例如文件操作的fs核心模块,http服务构建的http模块,path 路径操作模块、os 操作系统信息模块等等。

  3. 例如:

var fs = require('fs');
var http = require('http');
var OS = require('os');
var path = require('path');
  1. 作用域:
  1. require
  1. exports
  1. 模块分三种:
核心模块
fs 文件操作系统
  1. 通过 require 方法加载 fs 核心模块

var fs = require('fs');

  1. 读取文件

    readFile 方法:

    fs.readFile('life.md',function (error,data){});

    // 第一个参数:文件路径

    // 第二个参数:回调函数

    举例:

    fs.readFile('hello.js',function (error,data) {
        if (error) {
            console.log('读取文件失败了')
        } else{
            console.log('文件读取成功');
            console.log(data.toString());
        }
    });
    

    console.log(data.toString());这里运用了toString方法,它可以将16进制字符转化成我们能够认识的文字或字符

  2. 创建文件

 举例:

 ```JavaScript
 fs.writeFile('haha.js','大家好,我是node.js',function (error){
     if(error){
         console.log('文件创建失败')
     }else{
         console.log('文件创建成功');
     }
 });
 ```
 // 第一个参数:文件路径

 // 第二个参数:文件内容

 // 第三个参数:回调函数
  1. error :

    在以下两种情况下,error的值为何?

    成功 失败
    data:数据 data:undefined
    error:null error:错误对象
http 文件操作系统
  1. 通过引入var http = require('http');实现

  2. 举例:最简单的http服务

    // 1、加载 http 核心模块
    var http = require('http');
    // 2、使用http.createServer()方法创建一个Web服务器
    var server = http.createServer();
    server.on('request',function () {
        console.log('收到客户端的请求了');
    });
    server.listen(3000,function () {
        console.log('服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问');
    });
    
  3. 举例:完整的请求和响应,在不同访问路径做不同的响应

    // 1、加载 http 核心模块
    var http = require('http');
    // 2、使用http.createServer()方法创建一个 Web 服务器
    var server = http.createServer();
    server.on('request',function (request,response) {
        // 这里 url 取的值,是地址栏中链接第一个 / 开始的地方。
        console.log('收到客户端的请求了,请求路径是:' + request.url);
        var url = request.url;
        // 根据请求url,书写内容
        if (url == '/'){
            response.write('index.html');
        }
        if (url == '/login'){
            response.write('this is login page!');
        }
        if (url == '/regist'){
            response.write('this is regist page!');
        }
        // 写完后,一定要有结束函数
         // end函数内可以传字符串,代替write函数
        response.end();
    });
    // 绑定端口号,这里绑定的是3000,但也可以80,这样直接用127.0.0.1就可以访问
    server.listen(3000,function () {
        console.log('服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问');
    });
    
    • Request 请求对象
      • 请求对象可以用来获取客户端的一些请求信息,例如请求路径
    • Response 响应对象
      • 响应对象可以用来给客户端发送响应消息,只能够响应二进制与字符串,数字数组对象boolean都不行
  4. 响应内容类型

    1. 引入
    var http = require('http');
    var server = http.createServer();
    server.on('request',function (req,res) {
        // 这一行会打出 “hello 涓栫晫”,因为服务器用UTF-8包装的字符串,被nodejs默认使用当前计算机系统的默认编码(GBK)进行了解析,所以,我们需要设置响应头
        res.end('hello 世界');
    });
    server.listen(3000,function () {
       console.log('Server is running...');
    });
    
    1. url

      1. 概念:资源定位符,只是一个标示,末尾不一定是文件名,可以自己随便取名字,不过,一般最好还是要有含义
      2. 例如:
        1. 我们可以用 http://127.0.0.1:3000/steve 来定位我们的任何资源
        2. 资源可以是图片、文件(mp3、jpg、png、md等)、文档(js、java、php等)
    2. Content-Type:

      • 设置response(res)的响应头,告诉浏览器正确的传输内容编码格式
      res.setHeader('Content-Type','text/plain;charset=utf-8');
      
      • 响应类型:
        • utf-8:代表使用utf-8编码模式进行解析
        • text/plain:文本文档
        • text/html:HTML文档
        • image/jpeg:jpg文件
          • 注意,jpg、mp3等二进制文件,不需要制定编码,一般字符数据才指定编码
        • 等等...
      • 前端工具网址:tool.oschina.net
  5. 补充:

    • 查找端口被占用情况,并获取PID值:sudo lsof -i tcp:端口号
    • 杀死占用该端口的进程:sudo kill -9 PID值
os 操作系统
  1. 通过引入var os = require('os');来实现
  2. 举例:
var os = require('os');
// 获取当前机器的 CPU 信息
console.log(os.cpus());
// 获取内存信息
console.log(os.totalmem());
path 路径操作系统
  1. 通过引入var path = require('path');来实现

  2. 举例:

  3. var path = require('path');
    // 获取该路径文件的 后缀名
    console.log(path.extname('hello.txt'));
    
IP地址和端口号
上一篇下一篇

猜你喜欢

热点阅读