NodeJs基础入门

这篇博客介绍了Node.js的基础知识,包括其作为JavaScript运行环境的角色、学习Node.js的原因、用途,以及一些学习资源。接着,文章详细讲述了如何起步,从下载安装到使用REPL环境,再到Node.js中的模块系统。还深入讲解了核心模块如FS和HTTP的使用,如文件操作和搭建HTTP服务器。此外,博主强调了npm包管理器的重要性,提供了使用第三方包、初始化项目和解决npm下载问题的方法。最后,文章简要讨论了Node.js的模块化及CommonJS规范。
摘要由CSDN通过智能技术生成

第0章 Node介绍

0.0 回顾 JavaScript

  • **历史及发展 **

    1995年 网景公司的布兰登开发;

    1997年7月,ECMA组织发布ECMAScript 1.0版;

    2007年10月发布3.1版本后不久,ECMAScript 3.1改名为 ECMAScript 5。

    2008年,为Chrome浏览器而开发的V8编译器诞生

    2011年6月,ECMAscript 5.1版发布,现在使用最为广泛的版本;

    2015年6月,ECMAScript 6正式发布,并且更名为“ECMAScript 2015”;

  • 如何学习JavaScript

    JavaScript 的核心语法部分相当精简,也就是语言本身,只包括两个部分:

    • 基本的语法构造(比如操作符、控制结构、语句)

    • 标准库(就是一系列具有各种功能的对象比如Array、Date、Math等)。

想要实现其他复杂的操作和效果,都要依靠 宿主环境 提供API,目前,已经嵌入 JavaScript 的宿主环境有多种,最常见的环境就是 浏览器操作系统 ;

  • 回顾 JavaScript 语法特性
    • 变量、数据类型、流程控制
    • 函数(基本声明参数,作用域,回调函数)、面向对象(原型,构造函数,this的指向,new的过程)

0.1 Node是什么

Node 是一个基于 Chrome V8 引擎的JavaScript 运行环境。

Node 不是一种独立的语言、Node不是 JavaScript 框架,

Node是一个除了浏览器之外的、可以让JavaScript 运行的环境

Node.js 是一个让 JavaScript 运行在服务端的开发平台,是使用 事件驱动, 异步非阻塞I/O,单线程,跨平台的 JS 运行环境;

0.2. 为什么要学习 Node

  • 打开服务器的黑盒子
  • 企业需求
  • 大前端必备技能
  • 为了更好的学习前端框架

0.3. Node 能做什么

知乎 - Node.js能做什么,该做什么?

  • Web 服务器(重点)
  • 命令行工具
  • 网络爬虫:是一种按照一定的规则,自动地抓取网站信息的程序
  • 桌面应用程序开发

0.4. 一些资源

  1. 文档

    Node.js 官方文档
    Node.js 中文文档(非官方)

  2. 书籍

    深入浅出 Node.js
    Node.js 权威指南
    Node.js 实战
    Node.js实战(第2季)

  3. github资源

    Node.js 包教不包会
    ECMAScript 6 入门
    七天学会 NodeJS

  4. 社区

    Node.js 中文社区

0.5. Node 发展历史

聊聊 Node.js 的历史
来自朴灵大大的 – Node.js 简史

第1章 NodeJS起步

1.1 下载安装

  • 下载 https://nodejs.org/zh-cn/download/
  • 历史版本:https://nodejs.org/en/download/releases/

windows下安装过程:

对于已经装过的,重新安装就会升级

安装成功后,打开命令行,输入

node --version 或者 node -v (显示node的版本号)

表示安装成功

其他平台的安装方式:

https://nodejs.org/zh-cn/download/package-manager/

1.2 REPL环境

node中的REPL环境类似于浏览器中的 Console控制台 ,可以做一些代码测试。

按ctrl + 两次c 退出REPL环境

但是, 我们写代码肯定不是在控制台中写,而是写在一个单独的.js文件中.

1.3 node运行js代码

1.4 Node 中的模块

浏览器(客户端)中的JS 与 Node中的JS

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7iGbZIoZ-1669802871107)(img/Snipaste_2018-11-01_20-32-23.png)]

第2章 核心模块的使用

2.1.1 FS模块

node核心模块之一,用于操作文件;

中文手册 : http://nodejs.cn/api/fs.html

  • 文件读写
// 引入模块
var fs = require('fs');
// console.log(typeof fs); //object 

// 向文件中写入内容
fs.writeFile('./2.1.txt','itcast',function(cb,cb2){
   
    // 回调函数 (写入成功后执行的函数)
    console.log(cb);
    console.log(cb2);
})

// 从文件中读取内容
fs.readFile('./2.1.txt','utf8',function(e,d){
   
    // 回调函数 (读取成功后执行的函数)
    console.log(e);
    console.log(d);
});
  • 追加内容
// 引入模块
var fs = require('fs');

// 向文件中追加内容
fs.readFile('./2.1.txt','utf8',function(e,d){
   
    d+='2344';
    fs.writeFile('./2.1.txt',d,function(e){
   
        if(e){
   
            console.log('写入失败')
        }else{
   
            console.log('写入成功')
        }
    })
});

课堂作业:尝试操作json数据,时间15分钟

var str = [
    {
   id:1,names:'路飞',sex:'男',img:''},
    {
   id:2,names:'乌索普',sex:'男',img:''},
    {
   id:3,names:'娜美',sex:'女',img:''}
]

要求1:将数据转为字符串存入文件 hzw.json

要求2:向 hzw.json 文件中添加一条数据 {id:'4',names:'罗宾',sex:'女',img:''} ;

要求3:删除 hzw.json 文件中 id 值为2的数据

要求4:将 hzw.json 文件中id为3的数据中的names改为 ‘女帝’;

2.1.2 http协议理论

参见http部分课件

2.2 HTTP模块

node核心模块之一,用于搭建HTTP服务器;

中文手册 http://nodejs.cn/api/http.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EecW3tW-1669802871107)(./img/Snipaste_2018-11-01_20-40-13.png)]

2.2.1 开启服务器
// 1. 导入http模块
var http = require('http');

// 2. 使用http这个模块中的createServer()创建一个服务器实例对象
var server = http.createServer();

// 3. 绑定端口号,启动web服务器
server.listen(8000, function() {
   
    console.log(' 请访问http://localhost:8000');
});

// 4. 为这个服务器实例对象注册 request 请求处理函数
// 请求处理函数function(形参1,形参2){}
// 形参1:request请求对象 获取到当前请求的路径,方法等本次请求的所有信息
// 形参2:response响应对象 发送响应数据
server.on('request', function(request, response) {
   
    console.log('服务端收到客户端的请求啦!!!');
    // 向客户端页面返回字符串
    response.write("hello node");
    // 结束响应
    response.end();
});

因为我们的服务器接受请求处理并响应数据时,并没有指定响应数据的类型,所以出现了乱码;

而在http中,我们可以通过服务器的响应头指定数据类型,在 http.ServerResponse 类 中为我们提供了setHeader 方法:

2.2.2 响应 HTML 页面

但是,我们不能一直将html代码写到服务器的方法中,而是需要建一个xx.html的文件,将html文件中的内容返回给客户端;

2.2.2 .html :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <h1>你好,我是西岭老湿</h1>
    <h2>另外,我还很帅……</h2>
</body>
</html>

nodejs代码

var http = require('http');
// 1:引入文件操作模块
var fs = require('fs');
var server = http.createServer();
server.on('request'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值