Node.js学习笔记-未完待续

浏览器中的JavaScript运行环境

Node.js学习笔记-未完待续_第1张图片

 Node.js学习笔记-未完待续_第2张图片

 Node.js学习笔记-未完待续_第3张图片

 Node.js学习笔记-未完待续_第4张图片

Node.js简介

Node.js学习笔记-未完待续_第5张图片

Node.js官网:Node.jsNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.https://nodejs.org/zh-cn/ Node.js学习笔记-未完待续_第6张图片

Node.js学习笔记-未完待续_第7张图片 

Node.js环境安装

 下载地址:Node.jsNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.https://nodejs.org/en/

Node.js学习笔记-未完待续_第8张图片

按照菜鸟教程安装。

 Node.js学习笔记-未完待续_第9张图片

使用node运行JS代码

Node.js学习笔记-未完待续_第10张图片

 Node.js学习笔记-未完待续_第11张图片

 用cd切换执行目录。Node.js学习笔记-未完待续_第12张图片

 为了避免每次用cd切换路径,可以用powershell

在要运行的文件名的空白处,按住shift,鼠标点右键,找到Windows PowerShell。

Node.js学习笔记-未完待续_第13张图片

fs文件系统模块 

Node.js学习笔记-未完待续_第14张图片

Node.js学习笔记-未完待续_第15张图片

 读取文件内容

fs.readFile()的语法格式

Node.js学习笔记-未完待续_第16张图片

(被中括号包起来的是可选参数)

Node.js学习笔记-未完待续_第17张图片

 Node.js学习笔记-未完待续_第18张图片

// 导入fs模块
const fs  = require('fs')

//调用fs.readFile()方法
//参数1:读取文件的存放位置
//参数2:读取文件时采用的编码格式,默认是utf8
//参数3:回调函数,拿到读取失败和成功的结果err dataStr
fs.readFile('./files/1.txt', 'utf8', function(err, dataStr){
    //打印失败的结果
    console.log(err)
    console.log('------------')
    //打印成功的结果
    console.log(dataStr)
})

 Node.js学习笔记-未完待续_第19张图片

const fs = require('fs')

fs.readFile('./files/1.txt', 'utf8', function(err, dataStr){
    if(err){
        return console.log('读取文件失败!'  + err.message);
    }
    console.log('读取文件成功!' + dataStr)
})

向指定文件中写入内容

Node.js学习笔记-未完待续_第20张图片

 Node.js学习笔记-未完待续_第21张图片

//导入fs文件系统模块
const fs = require('fs')

//调用fs.writeFile()方法写入文件的内容
//参数1:文件存放的路径
//参数2:要写入的内容
//参数3:回调函数
fs.writeFile('./files/2.txt', 'abcd', function(err){
    //如果文件写入成功,err的值是null
    //如果文件写入失败,err的值是错误对象
    console.log(err);
})

 

//导入fs文件系统模块
const fs = require('fs')

//调用fs.writeFile()方法写入文件的内容
//参数1:文件存放的路径
//参数2:要写入的内容
//参数3:回调函数
fs.writeFile('./files/3.txt', 'ok123', function(err){
    //如果文件写入成功,err的值是null
    //如果文件写入失败,err的值是错误对象
    if(err){
        //因为具体的对象是true就会执行if,null是fasle就不执行if
        return console.log('文件写入失败!' + err.message);
    }
    console.log('文件写入成功!');
})

 案例:整理成绩黑马程序员Node.js全套入门教程,nodejs最新教程含es6模块化+npm+express+webpack+promise等_Nodejs实战案例详解_哔哩哔哩_bilibili本套课程作为框架前置课,重点为学生铺垫 npm、包、模块化、身份认证、CORS 跨域等主要知识点,为学习后面的 Vue 课程夯实基础。同时,本课程涵盖了 MySQL 数据库、API 接口项目开发等后端内容,拓宽了学生的知识面,为前端学生构建了前后端完整的知识体系,助力学生更好地发展。https://www.bilibili.com/video/BV1a34y167AZ?p=8

//导入fs模块
const fs = require('fs')

//调用fs,readFile()读取文件的内容
fs.readFile('./素材/成绩.txt', 'utf8', function(err, dataStr){
    //判断是否读取成功
    if(err){
        return console.log('读取文件失败!' + err.message);
    }
    // console.log('读取文件成功!' + dataStr);
    //把数组的数据按照空格分割
    const arrOld = dataStr.split(' ')
    //循环分割后的数组,对每一项数据进行字符串的替换
    const arrNew = []
    arrOld.forEach(item => {
        arrNew.push(item.replace('=', ':'))
    })
    //把新数组中的每一项进行合并得到一个新的字符串
    const newStr = arrNew.join('\r\n')
    
    //调用fs.writeFile(),把新数组存放到新文件里
    fs.writeFile('./files/成绩-ok.txt', newStr, function(err){
        if(err){
            return console.log('写入文件失败!' + err.message);
        }
        console.log('写入成功!');
    })
})

处理路径问题

Node.js学习笔记-未完待续_第22张图片

 完整的存放路径的写法:

C:\\Users\\Administrator\\Desktop\\Node.js基础\\day1\\code\\files\\1.txt

最好的写法是:

__dirname + '/files/1.txt'

__dirname表示当前文件所处的文件夹。

path路径模块

Node.js学习笔记-未完待续_第23张图片

路径拼接

 

 Node.js学习笔记-未完待续_第24张图片

获取路径中的文件名

Node.js学习笔记-未完待续_第25张图片

 Node.js学习笔记-未完待续_第26张图片

获取路径中的文件扩展名

Node.js学习笔记-未完待续_第27张图片

Node.js学习笔记-未完待续_第28张图片

案例:读取HTML CSS JS文件

黑马程序员Node.js全套入门教程,nodejs最新教程含es6模块化+npm+express+webpack+promise等_Nodejs实战案例详解_哔哩哔哩_bilibili本套课程作为框架前置课,重点为学生铺垫 npm、包、模块化、身份认证、CORS 跨域等主要知识点,为学习后面的 Vue 课程夯实基础。同时,本课程涵盖了 MySQL 数据库、API 接口项目开发等后端内容,拓宽了学生的知识面,为前端学生构建了前后端完整的知识体系,助力学生更好地发展。https://www.bilibili.com/video/BV1a34y167AZ?p=11

http模块

Node.js学习笔记-未完待续_第29张图片

 

服务器相关的概念

 IP地址

Node.js学习笔记-未完待续_第30张图片

 域名和域名服务器

Node.js学习笔记-未完待续_第31张图片

 端口号

Node.js学习笔记-未完待续_第32张图片

创建最基本的web服务器

Node.js学习笔记-未完待续_第33张图片

Node.js学习笔记-未完待续_第34张图片

Node.js学习笔记-未完待续_第35张图片

Node.js学习笔记-未完待续_第36张图片

//导入http模块
const http = require('http')

//创建web服务器实例
const server = http.createServer()

//为服务器实例绑定request事件,监听客户端的请求
server.on('request', function(req, res){
    console.log('有人访问了服务器');
})

//启动服务器
server.listen(8080, function(){
    console.log('服务器在 http://127.0.0.1:8080 运行');
})

Node.js学习笔记-未完待续_第37张图片

 Node.js学习笔记-未完待续_第38张图片

 Node.js学习笔记-未完待续_第39张图片

根据不同的url响应不同的html内容

Node.js学习笔记-未完待续_第40张图片

Node.js学习笔记-未完待续_第41张图片

const http = require('http')

const server = http.createServer()

server.on('request', (req, res)=>{
    //获取请求的url地址,不会变化的是常量用const
    const url = req.url
    //设置变量用let,即响应的内容,默认为404
    let content = '404 Not found!'
    //判断用户请求的是否是/或/index.html首页
    //判断用户请求的是否是/about.html页面
    if(url === '/' || url === '/index.html'){
        content = `

首页

` }else if(url === '/about.html'){ content = `

关于页面

` } //设置Content-Type响应头,防止中文乱码 res.setHeader('Content-Type', 'text/html; charset=utf-8') res.end(content) }) server.listen(80, ()=>{ console.log('服务器运行在 http://127.0.0.1'); })

 案例:时钟web服务器

Node.js学习笔记-未完待续_第42张图片

Node.js学习笔记-未完待续_第43张图片

Node.js学习笔记-未完待续_第44张图片

Node.js学习笔记-未完待续_第45张图片

 Node.js学习笔记-未完待续_第46张图片

Node.js学习笔记-未完待续_第47张图片

//导入http模块
const http = require('http')
//导入fs模块
const fs = require('fs')
//导入path模块
const path = require('path')

//创建web服务器
const server = http.createServer()
//监听web服务器的request事件
server.on('request', (req, res)=>{
    //获取客户端请求的url地址
    const url = req.url
    //把请求的url地址映射为具体文件的存放路径(说明:因为客户端请求的url是/clock/index.html  /clock/index.css  /clock/index.js,而clock文件夹在当前文件夹下面,可以用__dirname获取当前文件夹地址,再拼接上获取的url,就是文件的存放路径)
    // const fpath = path.join(__dirname, url)
    //优化路径
    //预定义一个空白的文件存放路径
    let fpath = ''
    if(url === '/'){
        fpath = path.join(__dirname, './clock/index.html')
    }else{
        //这时用户输入的是 /index.html 或 /index.css 或 /index.js
        fpath = path.join(__dirname, '/clock', url)
    }

    //根据映射过来的文件路径读取文件的内容
    fs.readFile(fpath, 'utf8', (err, dataStr)=>{
        if(err) return res.end('404 Not found')
        res.end(dataStr)
    })
})
//启动服务器
server.listen(80, ()=>{
    console.log('服务器运行在 http://127.0.0.1');
})

模块化的概念

Node.js学习笔记-未完待续_第48张图片

Node.js学习笔记-未完待续_第49张图片

Node.js中的模块化

Node.js学习笔记-未完待续_第50张图片

 加载模块

Node.js学习笔记-未完待续_第51张图片

Node.js中的模块作用域

向外共享模块作用域

 Node.js学习笔记-未完待续_第52张图片

module.exports对象的使用

 Node.js学习笔记-未完待续_第53张图片

 

 

exports对象

 

exports与module.exports的使用误区

Node.js学习笔记-未完待续_第54张图片

 CommenJS模块化规范

 

 包的概念

Node.js学习笔记-未完待续_第55张图片

Node.js学习笔记-未完待续_第56张图片

 https://www.npmjs.com/

 https://registry.npmjs.org/

Node.js学习笔记-未完待续_第57张图片

使用包

在终端输入

npm i 包的完整名称

点击回车

//导入需要的包
const moment = require('moment')

const dt = moment().format('YYYY-MM-DD HH:mm:ss')
console.log(dt);

每个包的用法都可以去www.npmjs.com 上面搜用法,看文档。

使用npm的注意点

Node.js学习笔记-未完待续_第58张图片

Node.js学习笔记-未完待续_第59张图片

 Node.js学习笔记-未完待续_第60张图片

Node.js学习笔记-未完待续_第61张图片 

Node.js学习笔记-未完待续_第62张图片 Node.js学习笔记-未完待续_第63张图片

Node.js学习笔记-未完待续_第64张图片

Node.js学习笔记-未完待续_第65张图片

 Node.js学习笔记-未完待续_第66张图片

Node.js学习笔记-未完待续_第67张图片 

Node.js学习笔记-未完待续_第68张图片 

解决下包慢的问题

Node.js学习笔记-未完待续_第69张图片 Node.js学习笔记-未完待续_第70张图片

Node.js学习笔记-未完待续_第71张图片

 包的分类

 

 

 

 

你可能感兴趣的:(node.js,前端,后端)