初识nodejs&npm
1、认识node.js
1.1 nodejs是什么
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。与原生js不同的是,原生JavaScript运行在浏览器也就是客户端,而Node.js是运行在服务端的JavaScript。Node.js不再和浏览器页面相关,所以很多内容和原生js有着差异,比如不再有任何DOM相关操作,顶层对象不再是window等等。它基于V8引擎,采用异步回调的策略,性能非常高。
V8 引擎:Chrome浏览器解析js的引擎。
1.2 下载安装node
1、访问 node.js中文网下载安装
2、配置nodejs环境变量
将nodejs安装目录添加到path
node -v //验证nodejs安装是否成功
npm -v //验证npm安装是否成功(安装node时会自动安排npm,nodejs的包管理工具)
2、内置的模块系统
2.1 node.js模块化
每创建一个文件都相当于一个模块,每个文件都是一个作用域,不用担心变量暴露在全局,同时我们引入的时候可以随便采用合适的变量名接受。
node原生模块:path,fs,URL等等。
2.2 路径中“./、../、@”的区别?
./ 相对路径,指当前目录
../ 相对路径,指当前目录的上一层目录
@ 相对路径,以根目录的方式定义相对路径。vue在webpack.base.conf.js文件中配置根目录:
// 连接路径并返回
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
module.exports = {
resolve: {
// 在导入语句没带文件后缀时,webpack会自动按照顺序添加后缀名查找
extensions: ['.js', '.vue', '.json'],
// 配置别名
alias: {
'vue$': 'vue/dist/vue.esm.js',
// 将项目根目录中,src的路径配置为别名@
'@': resolve('src'),
}
}
}
2.3 moudule.exports与exports的区别?
最终导出的是moudule.exports
默认情况下exports与moudule.exports是引用关系,如果exports被重新赋值就不再有引用关系。
2.4 模块缓存?
两次引入同一个文件,结果一样。修改其中一个文件内容,另外引入的那个文件一样被修改。
2.5 path模块
path模块用来解析路径的模块。全局变量__dirname、__filename。
__dirname:文件目录。
__filename:带文件名的目录。
处理路径的几种方法:join、resolve、relative、parse。
join直接拼接路径。
resolve拼接路径,与join不同的是resolve会分析根路径,遇到根路径就从根路径出发重新发起路径拼接。
relative分析两个文件或两个目录的相对路径。
parse解析路径,返回一个解析路径的对象,对象含 {root:’c:/’,dir:‘...’,base:‘...’,ext:‘...’,name:‘...’}
2.6 URL模块
url 模块用于处理与解析 URL。
const url = require('url');
let myURL = url.parse('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');
const URL = require("url");
let myURL = URL.URL; //[class URL]
console.log(new myURL("https://www.shiguangkey.com/video/4996?videoId=105451&classId=7569&playback=1"));
const {URL} = require("url");//{URL:URL}
let myURL = new URL("https://www.shiguangkey.com/video/4996?videoId=105451&classId=7569&playback=1")
console.log(myURL);
2.7 querystring模块
querystring 模块提供用于解析和格式化 URL 查询字符串。
const querystring = require('querystring');
querystring.parse(str[, sep[, eq[, options]]])
querystring.stringify(obj[, sep[, eq[, options]]])
2.8 fs模块
fs.readFile(path[, options], callback) //异步读取
options
encoding 默认值: null。
flag 参见文件系统 flag 的支持。默认值: 'r'。
callback
err
data
const fs = require('fs');
fs.readFile('文件路径', (err, data) => {
if (err) throw err;
console.log(data);
});
fs.readFileSync(path[, options]) //同步读取
返回 path 的内容。
const fs = require('fs');
fs.readFileSync('文件路径',"utf-8"); // => <data>
fs.writeFile(file, data[, options], callback) //异步写入
fs.writeFileSync(file, data[, options]) //同步写入
fs.unlink(path, callback) //删除文件
fs.rmdir(path[, options], callback) //只能删除非空目录
fs.rename(oldPath, newPath, callback) //移动文件
fs.stat(path[, options], callback) //查看文件or目录信息
3、认识npm
1.1 npm介绍
npm(Node Package Manager)node的包管理器,其实它面向的是整个JavaScript的。npm随同NodeJs一起安装。npm -v检查安装版本
- 允许用户从NPM服务器下载别人编写的第三方包和命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
1.2 npm 常用命令
//使用 npm 初始化管理项目
npm init
npm init -y //项目初始化,创建package.json文件(-y 自动应答)
//使用 npm 命令安装模块
npm install <Module Name> <参数>
npm i <Module Name> <参数>
-S / --save 生产环境--项目上线之后依然会使用
-D / --dev 开发环境--只在开发阶段会使用
-g 全局安装
//卸载模块
npm uninstall <Module Name> <参数>
npm un <Module Name> <参数>
//更新模块
npm update <Module Name>
npm update <Module Name>@版本号 //指定版本
//查看当前安装的模块
npm list
//查看所有全局安装的模块
npm list --depth=0 -global
//登录npm
npm login
//上传包到服务器
npm publish
//从npm服务器删除当前包
npm unpublish
1.3 使用淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install [name]
1.4npm的使用
在NodeJs中通过npm下载某个包之后,可以通过引入模块的形式来使用。
const express = require("express");
分类: nodejs

浙公网安备 33010602011771号