2023-5-31(第二十一天)

93 阅读3分钟

Node.js安装

检查是否安装成功:cmd ----->node -v

Node.js如何运行

方式一:在cmd输入node回车,直接书写js代码

方式二:脚本/文件模式 在cmd输入:node 文件的绝对路径

方式三:编辑器中运行(前提:至少前两个方法能够成功,才可以安装插件)

  1. 安装插件:code runner(vscode)
  2. 右键选项code runner
  3. 或者点击右上角的开始按钮

js和Node.js的区别

相同点:都可以使用一切的ECMAScript的东西,包含一切的API,都可以使用, ​ 不同点: ​ 1、JavaScript:ES+BOM+DOM

2、Node.js:ES+模块

3、在服务器端不存在任何浏览器,所以Node.js不必担心兼容问题

模块(module)

每一个xx.js,都可以称之为是一个模块

exports

Node.js自带一个预定义变量:exports,可以直接使用,是一个对象,用于公开/暴露自己的成员

exports.属性名=值;
module.exports.属性名=值;
module.exports={
    属性名:属性值,
    ...
}
exports和module.exports有什么区别?

相同点:都是用于公开暴露自己的成员的

不同点:

  1. exports={}的写法是错误的
  2. Node.js底层有一句话:exports=module.exports,其实真正做公开功能的是module.exports

require

Node.js自带一个预定义变量:require,可以直接使用,是一个函数,用于引入/导入其他模块

var x=require("./路径");

官方模块

不需要下载,但是有的模块需要引入,有的模块不需要引入(具体看文档)

Global模块

不需要引入的,可以直接使用

  • __filename

获取到当前文件完整的绝对路径

  • __dirname

获取当前文件所在文件夹的绝对路径

  • exports

空对象,用于公开暴露自己的成员

  • require

函数,用于导入其他模块

  • module

指代当前模块本身,包含着以上4个操作

定时器

周期性、一次性、瞬间定时器(setImmediate(callback))

console

querystring模块

需要引入

解析查询字符串(请求消息),使其变成一个对象,可以获取到前端传到后端的消息(请求消息) 作用:解析url中查询字符串部分的功能

var obj=qs.parse("查询字符串");

url模块

需要引入 作用:解析url中各个部分的功能

var objUrl=url.parse("完整的url",true);
//支持第二个参数,是一个布尔值,默认为false,若设置为true,就会自动使用querystring的parse方法去解析查询字符串部分,将其转换成对象

1、查询字符串/请求消息:objUrl.query.键名; 2、路由/文件相对路径/请求地址:objUrl.pathname

Buffer模块:缓冲区

可以将数据变成一个16进制的数字,Node.js中大部分API,都是支持Buffer

fs模块:fileSystem文件系统

需要引入

异步操作
1、读取文件:
fs.readFile(文件路径,(err,buf)=>{
    console.log(buf);->读取到了要干什么,必须放在这个回调函数里面!
})
​
2、写入文件:
fs.writeFile(文件路径,"新内容"/buf,(err)=>{
    写入完毕后的操作
})
​
3、追加文件:
fs.appendFile(文件路径,"新内容"/buf,(err)=>{
    追加完毕后的操作
})
同步操作
// 读取
fs.readFileSync("文件路径")
​
// 写入
fs.writeFileSync("文件路径","新内容")
​
// 追加
fs.appendFileSync("文件路径","新内容")