当前位置: 首页 > news >正文

乐安网站建设合肥网

乐安网站建设,合肥网,网站建设模板源代码,辽宁建设工程信息网直接发包代理机构流程目录 一、Path模块 二、fs模块 2.1、fs同步读取文件fs.readFileSync() 2.2、fs异步读取文件fs.readFile() 2.3、异步写入文件内容fs.writeFile() 三、Http模块 四、模块化 4.1、CommonJs的导入导出 4.2、ES6的导入导出 五、了解global和this 六、Sort()应用(数组排序…

目录

一、Path模块

二、fs模块

2.1、fs同步读取文件fs.readFileSync()

2.2、fs异步读取文件fs.readFile()

2.3、异步写入文件内容fs.writeFile()

三、Http模块

四、模块化

4.1、CommonJs的导入导出

4.2、ES6的导入导出

五、了解global和this

六、Sort()应用(数组排序)

前言:

打开cmd窗口使用node -v检查node版本,最好13+,

cmd或者集成终端下运行项目:node xx.js

官网文档: https://nodejs.cn/api-v16/fs.html

一、Path模块

__dirname是Node提供的特殊变量:可获取当前文件所在路径

path.join():拼接完整路径

const path=require('path');//引入path模块,引入后才能使用对应的功能
console.log(__dirname);//__dirname是Node提供的特殊变量:可获取当前文件所在路径
//输出:C:\Users\hp\Desktop\node
let ret=path.join(__dirname,'hello.txt');//拼接出文件的完整路径(含文件名)
console.log(ret);
//输出:C:\Users\hp\Desktop\node\hello.txt
let ret2=path.join(__dirname,'modules','m1.js');//获取m1.js的路径
console.log(ret2);
//输出:C:\Users\hp\Desktop\node\modules\m1.js

二、fs模块

2.1、fs同步读取文件fs.readFileSync()

const fs=require('fs');//fs 文件操作系统
const path=require('path');
let filePath=path.join(__dirname,'hello.txt')
let content =fs.readFileSync(filePath,'utf8');//fs.readFileSync(文件路径)
// 输出:<Buffer e8 bf 99...>   Buffer是Node在内存暂存数据的方式,需要加‘utf8’转码/结果.toString()
// 转码后输出:这是一个文本文件(hello.txt的内容)
console.log(content);
console.log('END--------');

2.2、fs异步读取文件fs.readFile()

const fs=require('fs');//fs 文件操作系统
const path=require('path');
let filePath=path.join(__dirname,'hello.txt')
fs.readFile(filePath,'utf8',(err,data)=>{if(err){console.log("err错误",err);return}console.log("读取到的内容",data);//最后执行// 输出:读取到的内容 这是一个文本文件
})
console.log('END--------');//先执行

2.3、异步写入文件内容fs.writeFile()

// 原本没有就是增,有的话就是改

fs.writeFile(filePath,'change content','utf8',err=>{

    console.log("写入成功!");//操作成功后执行这里的代码

})

分享:

Sync:同步  Async:异步

// 同步代码:按顺序执行

// 异步代码:速度比同步慢,执行时,快的先走,与顺序无关

三、Http模块

类似于书写一个后端接口,有get、post等。后面可以用Express后端框架代替,更加方便!

如下:是写一个WEb服务器程序

const http=require('http');//1.引入http模块
// 2.定义一个端口号
const PORT=8081;
// 3.创建服务器对象,处理请求
// request:请求对象  response:响应对象
let server=http.createServer((request,response)=>{console.log("有请求过来了!");//在浏览器端访问localhost:8081  会执行这里response.setHeader('Content-Type','text/html;charset=utf-8');//设置响应头,防中文乱码response.write("hello 朋友们!");//给浏览器作出响应response.end();//结束本次响应
})
// 4.启动服务器,开启监听
server.listen(PORT,err=>{console.log(`服务器已经启动在了${PORT}端口上`);// 输出:服务器已经启动在了8081端口上
})

3.1、解决中文乱码问题

 response.setHeader('Content-Type','text/html;charset=utf-8');//设置响应头,防中文乱码

3.2、根据请求路径返回内容给浏览器

const http=require('http');
const fs=require('fs');
const path=require('path');const PORT=8081;
let server=http.createServer((request,response)=>{console.log("有请求过来了!",request.url);//首页的值为  /response.setHeader('Content-Type','text/html;charset=utf-8');if(request.url==='/'){  //http://localhost:8081let filePath=path.join(__dirname,'html',"index.html");let content=fs.readFileSync(filePath);response.write(content);}else if(request.url==='/list'){  //http://localhost:8081/listlet filePath=path.join(__dirname,'html',"list.html");let content=fs.readFileSync(filePath);response.write(content);}else{response.write("404页面!");}response.end();
})
server.listen(PORT,err=>{console.log(`服务器已经启动在了${PORT}端口上`);
})

四、模块化

在项目下新建module文件夹,将要导出的模块文件写在里面

4.1、CommonJs的导入导出

// 导出数据(第一种语法)

exports.a=a;

exports.sum=sum;

exports.Animal=Animal;

// 导出数据(第二种语法)

module.exports={a,sum,Animal};

导入语法:const m1=require('./modules/m1')//导入模块 

4.2、ES6的导入导出

ES6的第一种导出语法(边定义边导出,允许有多个)

按需导入:import {} from 'xx.mjs'

// ES6的第二种导出语法(只能有一个)

export default{

    a,sum,Animal

}

第二种导入:import m2 from './modules/m2.mjs'

注意:

Node应用ES6导入模块时,版本要13,2+;

// 后缀名都得改成.mjs==>运行node xx.mjs即可

五、了解global和this

global:通过global定义对象,可以直接访问

this:在交互模式(cmd)下,this===global(true)

node 解释器  用来解释js代码(js是解释型语言)

在node引擎下解释js文件时,this并不指向全局对象,指向exports对象

let a=10;
// console.log(window);//报错
// console.log(global);//全局对象global
// console.log(global.a);//undefined 全局下定义变量,并不会挂载到全局对象下
// global.b=20;
console.log(b);//20  通过global定义对象,可以直接访问
console.log(this===global);//false// 了解this
console.log(this);//{}
exports.a=a;
console.log(this);//{a:10}
console.log(this===exports);//true

六、Sort()应用(数组排序)

  arr.sort(fn),不加对参数大小的排序函数,这个方法默认只会按照元素的第一位,比如100就会排在2的前面。

    let arr = [100, 2, 4, 65, 3, 7, 8, 64];let brr = [{ name: '11', age: 19 }, { name: '22', age: 17 }, { name: '33', age: 21 }]console.log(arr.sort());//输出:[100, 2, 3, 4, 64, 65, 7, 8](只按第一位排序)function fn(a, b) {return a - b;//从小到大排序,反之也可}console.log(arr.sort(fn));//输出:[2, 3, 4, 7, 8, 64, 65, 100]function fn2(a, b) {return a.age - b.age;}console.log(brr.sort(fn2));//将数组里的每个对象排序

http://www.khdw.cn/news/61181.html

相关文章:

  • 加强政民互动 建设交流型政府门户网站株洲最新今日头条
  • 动态域名解析 免费厦门百度seo排名
  • 网站建设文件夹结构宁波网络推广平台
  • 做复刻衣服买网站快速整站排名seo教程
  • 云浮 网站建设网络服务器的功能
  • 华为云建站和阿里云建站区别建立网站的主要步骤
  • 融资平台排行榜seo优化按天扣费
  • 网站设计公司域名服务器建设云推广
  • 网站如何做推广广告sem是什么意思
  • 中国医院建设协会网站云南seo简单整站优化
  • 网站后台生成静态页面好搜网
  • 自己做公司网站需要什么优势的seo网站优化排名
  • 个人开发者百度seo关键词优化电话
  • 最牛的网站建设cnzz数据统计
  • 凡科轻站百度手机助手下载2022官方正版
  • php mysql购物网站开发西安百度seo排名
  • 小企业做网站有没有用竞价推广sem
  • 网站建设遇到哪些问题百度账户托管公司
  • 聚牛建设网站栾城seo整站排名
  • 聊城做网站推广地方seocui cn
  • 白银市建设局网站王浩成都网络营销公司
  • 温州做网站正规的推文平台
  • 手机赌博澳门网站开发万能浏览器
  • 政府网站建设团队公司网站怎么申请怎么注册
  • 视屏网站制作重庆百度推广开户
  • 免费的简历制作网站太原百度公司地址
  • 中国娱乐公司三大巨头seo是干嘛的
  • 常熟网站制作新站快速收录
  • 上海网站开发开发好的公司电话seo网站优化培训怎么做
  • 孔为民医生个人网站百度快速优化排名软件