Node.js安装
检查是否安装成功:cmd ----->node -v
Node.js如何运行
方式一:在cmd输入node回车,直接书写js代码
方式二:脚本/文件模式 在cmd输入:node 文件的绝对路径
方式三:编辑器中运行(前提:至少前两个方法能够成功,才可以安装插件)
- 安装插件:code runner(vscode)
- 右键选项code runner
- 或者点击右上角的开始按钮
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有什么区别?
相同点:都是用于公开暴露自己的成员的
不同点:
- exports={}的写法是错误的
- 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("文件路径","新内容")