前言
掌握Node的服务端编程语法和API,基础模块
掌握node制作命令行工具
node.js 不能操作Dom Bom,因为服务端没有window
能使用的只有我们js本身自带的对象
提示:以下是本篇文章正文内容,下面案例可供参考
一、node是什么?
示例:node是使用js开发了一套能够独立允许操作系统的工具库,相当于在js上的扩展
二、使用步骤
1.node和npm的使用
--npm是node的包管理器, 就是用来进行下载插件使用的.,npm在安装node的时候就自带了.直接使用即可
代码如下(示例):
1.下载node,并下一步安装就行了
node -v 检测node的版本
npm -v 检测npm的版本
2.npm的命令使用
2.1 初始化
npm init 帮你创建一个package.json配置文件(记录项目信息和下载的包信息)
cmd中的指令:
ctrl+c可以退出初始化过程
cd 目录名 ./ ../
cls 清空当前cmd窗口
esc 退出当前窗口
2.2 安装包
npm install 包名(安装包名) ------安装在项目目录中,会创建一个node_modules
2.3 卸载包
npm uninstall 包名(安装包名) ------nmp
安装的包有三种:
全局依赖(全局工具包,安装在电脑上), npm i 包名 -g
项目依赖(项目需要用到的包,记录在: dependencies中) npm i 包名 -s
开发依赖(只在开发的时候需要,项目运行不需要: 保存在:devDependencies)
//完整写法
npm install 包名 -g
npm install 包名 --save 项目依赖
npm install 包名 --save-dev 开发依赖
升级npm版本: npm install npm@latest -g
npm仓库: https://www.npmjs.com
//简写命令:
npm i 包名 -g 全局安装
npm i 包名 -s 项目依赖(默认,可以不要-s)
npm i 包名 -D 开发依赖(必须大写D,不然安装成项目依赖)
//nodemon 也是热部署工具
作用: 自动检测程序的变化,不需要你自己每次修改一点就重启服务器.
npm i nodemon -g
nodemon js文件
不需要重启服务器,直接刷新网页就可以了.
//切换淘宝镜像方法
npm config set registry https://registry.npm.taobao.org
//查看是否切换成功
npm config get registry 或 npm info express
//通过cnpm使用
npm install -g cnpm --registry=https://registry.npm.taobao.org
//查看版本号
cnpm -v
//切换淘宝镜像后再装包
cnpm i express -S
2.全局对象
在浏览器环境中,浏览器中的全局对象为window。在node中也有全局对象。
代码如下(示例):
console.log(global);
console.log(this);
跟浏览器环境中的this相同,表示顶级对象
注意:浏览器的全局环境this表示window,node中this不是表示global,而是一个空对象
3.模块的导入和导出
模块引入: 在浏览器中引入JS文件,以前我们用script标签
node中使用的是ES5的模块导入导出.
使用: module.exports 或者 exports 导出对象
然后在另一个页面 require引入对象
4.内置模块os
5.内置模块http
node的http模块主要使用来创建服务器的.
1. 引入http模块
2. 创建服务器(req和res表示请求和响应对象)
3. 监听端口
//1.引入模块
const http = require('http');
//2.创建服务器,接收请求和响应
let server = http.createServer(function(req,res){
res.writeHead(200, { "Content-Type": "text/html;charset=UTF-8" })
// res.end('返回的内容')
res.write('返回的内容')
res.end();
})
//3.监听端口
server.listen(3000,function(){
console.log('服务器已经开启');
});
//注意,修改服务器代码之后,一定要重启服务器,才能生效
//注意: req.url可以拿到用户请求的网址
//注意:res.end() 相当于: res.write()和res.end();
res.write()写入数据,多个会连接成一个.
6.内置模块path
该模块中记录了一些常见的路径信息
详细参考地址:https://nodejs.org/dist/latest-v12.x/docs/api/path.html
**注意:path模块操作全部相当于字符串操作,并不会判断路径是否真实存在**
1.basename()
获取某段路径的最后一个 / 后面的内容
第二个参数为可选参数,如果匹配,去掉匹配内容
2.dirname()
获取路径的目录
3.extname()
获取路径的后缀名
4.join()
拼接路径,会根据操作系统拼接
**注意:相对于命令行工具,一般使用配合__dirname使用**
5.resolve() 重点
转换成绝对路径,根据cmd窗口来拼接
const path = require("path");
const basename = path.basename("fdg/dfgdfg/adfaf/fdgdfgd/a.ss", ".html");
console.log(basename);
const dir = path.dirname("a/b/c/d");
console.log(dir);
const ext = path.extname("a/b/c/a.js");
console.log(ext);
const basePath = "a/b";
const fullpath = path.join(basePath, "../", "d.js");
console.log(fullpath);
const absPath1 = path.resolve("./a.js");
console.log(absPath1);
const absPath2 = path.join(__dirname, "./a.js");
console.log(absPath2);