node基础教程

回顾

javascript 可以在浏览器运行  (js代码会JavaScript的解析引擎执行)
    chrome  ==》V8 (性能最好)
    FireFox  ==》 奥丁猴
    safri  ==》JSCore
    IE浏览器 ==》查克拉
 JavaScript可以在浏览器端操作DOM 和BOM
   每一个浏览器都内置了BOM,DOM这样的API函数,所以浏览器中的js才可以调用他们
 浏览器中JavaScript的运行环境
   V8引擎负责解析和执行js代码
   内置API是由运行环境提供的特殊接口,只能在所属的运行环境中调用
   
 总结:浏览器是JavaScript的前端运行环境
 
 JavaScript语法  +浏览器内置的API (DOM+BOM)+ jquery第三方库

node基础教程

node是让JavaScript运行在服务端上的环境

Node.js是JavaScript的后端运行环境
Node.js中无法调用BOM,DOM等浏览器内置的API 
Node.js它内置的API : fs,path,http...

http://nodejs.cn/api/

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

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

下载node

下一步下一步安装就可以

检测是否安装成功

windows+R 打开运行 — 输入cmd —打开命令窗口

node -v
v16.15.0
npm -v
# 8.5.5  (安装node的同时 也安装了npm)

出现版本号,说明安装成功

安装出现问题

node不是内部或外部命令,也不是可运行的程序或批处理文件。

环境变量

电脑搜索环境变量,把node的安装路径复制到环境变量上,点击确定

如何学习Node

javascript基础语法 +Node.js内置API(fs,path,http) +第三方模块(express)

在node环境中运行js代码
  • 新建目录mycode,目录下新建01test.js文件

    let name = '张三'
    console.log(name)
    var arr = [11, 22, 33, 44, 55]
    arr.forEach((item) => {
      console.log(item)
    })
    
  • node环境下运行js代码(第一种)

    • 打开js文件所在目录
    • 在目录地址栏上输入cmd ,回车(确保命令窗口的地址是js文件的目录地址)
    • 输入命令 node 01test.js (输入文件名按tab)
  • node环境下运行js代码(第二种)

    • 打开js文件所在目录
    • 按住shift+右击 在此处打开powershell窗口
    • 输入命令 node 01test.js (输入文件名按tab)
  • node环境下运行js代码(第三种)

    • 在vscode中 点击文件右击 打开集成终端
    • 输入命令 node 01test.js (输入文件名按tab)
vscode终端快捷键
上键    快速定位到上一次执行命令
tab    快速补全
esc    清空当前输入命令
cls    清空终端
Node三大模块
内置模块

安装了node就会有,(Node官方提供 fs,http,path…)

http://nodejs.cn/api/

fs
/**
 *fs文件系统模块 fs模块是NodeJS官方提供,用来操作文件的模块,它提供了一些列的方法和属性,满足用户对文件的需求
 * */

//  2引入fs模块 来操作文件
var fs = require('fs')

/* 
fs.readFile(path[,options],callback)
path  读取文件路径
options  读取文件时采用的编码方式 utf-8
callback  回调函数,可以拿到读取失败和成功的结果 err  data
*/

fs.readFile('./aa.txt', 'utf8', function (err, data) {
  // console.log(err) //null  读取成功-null   读取失败 err值为错误对象
  // console.log(data) //读取失败  值为undefined
  if (err) {
    return console.log('读取文件失败')
  }
  console.log(data)
})

// 写入文件
/* 
fs.writeFile(file, data[, options], callback)#
file 文件路径
data要写入文件的数据
options 写入文件时采用的编码方式 utf-8
callback  回调函数  err写入成功和失败的信息
*/
let content = '<h3>正在使用fs.writeFile写入文件内容</h3>'

fs.writeFile('./index.html', content, function (err) {
  // console.log(err)
  if (err) {
    return console.log('文件写入失败')
  }
  console.log('文件写入成功')
})
path

系统内置的路径模块,用于处理文件和目录的路径

/* 
系统内置的路径模块,用于处理文件和目录的路径
*/

const path = require('path')

// path.join() 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起
console.log(path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'))

console.log(__dirname) //当前文件目录名  绝对路径  //C:\丁鹿课堂\17期\08node\day01-node\mycode
console.log(__filename) //C:\丁鹿课堂\17期\08node\day01-node\mycode\03path.js
http

Node.js提供了http模块,http模块主要用于搭建HTTP服务端,调用HTTP模块

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H7eeO7cp-1662993729062)(.\相册\node\http搭建服务端.png)]

const http = require('http')

const fs = require('fs')
const url = require('url')

/* 
url.parse() 方法会解析一个 URL 字符串并返回一个 URL 对象。
*/
// 创建服务
http
  .createServer(function (request, response) {
    // console.log(123)
    // 解析请求 包含文件名
    // console.log(request.url)
    var pathname = url.parse(request.url).pathname
    // console.log(pathname.substr(1))
    fs.readFile(pathname.substr(1), function (err, data) {
      if (err) {
        console.log(err)
        response.writeHead(404, { 'Content-Type': 'text/html' })
      } else {
        response.writeHead(200, { 'Content-Type': 'text/html' })
        // 响应文件内容
        response.write(data.toString())
      }
      // 发送响应数据
      response.end()
    })
  })
  .listen(8080)

console.log('server running at http://127.0.0.1:8080')
自定义模块

自定义模块就是自己定义的模块

注意:

自定义模块中定义的方法,变量只能在当前的模块中使用

加载模块:require() 可以引入需要的内置模块,用户自定义模块,第三方模块

向外共享:每个js自定义模块中都有一个module对象,它里面存储了和当前模块有关的信息

定义模块aa.js

const arr = [11, 22, 33]

// 向外暴露
module.exports.arr = arr

定义模块bb.js

const arr = [
  { name: '张三', age: 12 },
  { name: '李四', age: 22 },
  { name: '王五', age: 33 },
]

module.exports.arr = arr

index.js中使用两个模块

const arr1 = require('./aa.js')

const arr2 = require('./bb.js')

console.log(arr1)
console.log(arr2)
```\
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值