初识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的引擎。

Node菜鸟教程

Node API文档

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

默认情况下exportsmoudule.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

posted @ 2020-11-18 22:40  Janie_long  阅读(174)  评论(0)    收藏  举报