Node基础 1(入门了解)

Node基础 1(入门了解)

Node.js基础-终端基本使用

配置环境变量(可执行文件路径)之后,就可以在终端快捷执行命令;


终端文件操作常用命令:

md:创建目录;
rmdir(rd):删除目录,目录内没有文档
    rd /s/q abc:删除子目录(所有的 无提示)
del:删除文件
rm 文件名:删除文件
cat 文件名:查看文件内容
cat > 文件名:向文件中写入内容
echo on a.txt:创建文件
    echo on > a.txt:创建文件

Node.js基础-环境安装配置

使用的Mac系统,安装包下载地址:https://nodejs.org/

(base)$ node -v
v12.16.3

使用nvm可以进行多版本安装包的管理:

  • 为了开发方便,提前调试新版本;
  • window下多版本安装方式:
    • 卸载已有的Node.js
    • 下载nvm(nvm-windows)
    • 在dev目录中创建两个子目录nvm和nodejs
    • 并且把nvm包解压进nvm目录中
    • 在install.cmd文件上面右键选择“以管理员身份运行”
    • 打开cmd窗口直接回车生成settings.txt文件,修改配置信息为两个子目录nvm和nodejs两个子目录路径
    • 配置nvm和Node.js环境变量:
      • NVM_HOME: C:\dev\nvm
      • NVM_SYMLINK: C:\dev\nodejs
    • 把配置好的两个环境变量加到Path中;

常用nvm命令:

  • nvm list //查看已下载的nodejs包
  • nvm install latest //安装最新版本nodejs
  • nvm install 10.0.2 //安装多版本 指定版本
  • nvm use 10.0.2 //切换指定版本的nodejs
  • node -v //查看当前使用的nodejs版本

Node.js基础-全局成员概述

hello world

与浏览器提供的node环境使用类似:

(base) flowers-MacBook-Pro:~ huaqiang$ node
Welcome to Node.js v12.16.3.
Type ".help" for more information.
> console.log('hello world')
hello world

命令行方式REPL:read-eval-print-loop(读取 执行 打印 循环)

终端特有的:

  • _:表示最后一次执行语句的结果;
  • .exit:执行该命令,可以退出REPL系统;

执行js文件

将代码写到js文件中,执行相应的js文件;

// 01.js
console.log('hello flower')
// node 执行
(base) flowers-MacBook-Pro:~ huaqiang$ node 01.js

Node.js基础-初识模块化

感兴趣的可以移步阅读Node.js API文档

与浏览器node环境不同不同,本地的node环境不存在window对象,但是有一个类似的对象,叫global;


全局对象global的成员:

//包含文件名的全路径
console.log(__filename);
//文件目录的全路径(不包含文件名)
console.log(__dirname);

//定时函数
var timer = setTimeout(function(){
    console.log(123);
    // clearTimeout(timer)//执行之后 清空
},1000);

clearTimeout(timer)//紧接着清空 延时调用的方法是不会执行的

// Buffer
// console
global.console.log('')//global可以省略

// process //进程对象
//* REPL执行
> console.log(process.argv)
[ '/usr/local/bin/node' ]

//* JS文件node执行
$ node 01.js
[ '/usr/local/bin/node', '/Users/huaqiang/Desktop/node/01.js' ]

//* JS文件node执行 带参数
(base) flowers-MacBook-Pro:node huaqiang$ node 01.js para1
[
  '/usr/local/bin/node',
  '/Users/huaqiang/Desktop/node/01.js',
  'para1'
]

// exports
// module
// require()

exports module require() 这三者是与模块化相关的


Node.js基础-模块成员导出详解

1.模块化开发相关成员属性:

  • exports
  • module
  • require()

2.模块化开发:

  • 解决命名冲突
  • 优化文件依赖

3.前端:模块化规范/标准

  • AMD 对应的实现是 requirejs
  • CMD 对应的实现是 seajs(阿里的)

4.服务端:模块化规范/标准

  • CommonJS 对应的实现是 Node.js(也是我们正在学的)

5.模块化相关的规则:

  • 如何定义模块:1个js文件就是一个模块,模块内部的成员都是相互独立的;
  • 模块成员的导出和引入;
// 当前目录下定义的03.js
var sum = function(a,b){
    return parseInt(a) + parseInt(b);
}
// 导出方式1:exports 导出模块成员
exports.sum = sum;
// 导出方式2:module 导出
module.exports = sum;
// 导出方式1 对应的引入方式:引入模块
var module1 = require('./03.js')

var ret = module1.sum(12,13)
console.log(ret)

// 导出方式2 对应的引入方式:引入模块
var module2 = require('./03.js')

var res = module2(12,13)
console.log(res)

Node.js基础-模块化细节补充

1.模块导出方式3:

// 使用global:将要导出的对象添加到全局对象中
var flag = 123
global.flag = flag
require('./04.js')
console.log(global.flag)

模块文件的加载会被缓存:多次require加载模块,会使用缓存;
导入模块的时候,js后缀可以省略

2.模块文件的后缀:

  • .js
  • .json:一般就是用于提供数据
  • .node:一般是C语言编译的
var m = require('./data.json');
console.log(m); //会打印引入json模块对应的对象 

var m = require('./add.node');
var ret = m.hello();
console.log(ret);

3.模块加载的顺序:

  • 如果引入的模块 不写后缀,会按照 js json node的顺序进行查找;

4.模块分类:

  • 自定义模块
  • 系统核心模块
    • fs 文件操作
    • http 网络操作
    • path 路径操作
    • querystring 查询参数解析
    • url url解析
    • 等等

相关系统的核心模块可以参考Node.js API文档

const fs = require('fs')//引入核心模块 通过引入固定的特征字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值