当前位置 博文首页 > 向往的那片海洋:Node 快速入门(二)
所有 ECMAScript 语法在 Node 环境中都可以使用
var first = 'hello nodejs';
console.log(first);
function fn(){
console.log('fn 函数被调用了');
}
fn();
for(var i=0;i<5;i++){
console.log(i);
}
if(true){
console.log('123');
}
输出:
fn 函数被调用了
0
1
2
3
4
123
JavaScript 在使用时存在两大问题,文件依赖和命名冲突
一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他功能的运行。
exports
对象进行成员导出,使用 require
方法导入其他模块。模块成员的导出
// a.js
// 在模块内部定义变量
let version = 1.0;
// 在模块外部导出数据
exports.version = version;
exports.sayHi = sayHi;
模块成员的导入
// 模块成员的导入
// 导入模块时后缀可以省略
// b.js
// 在 b.js 模块中导入模块
let a = require('./b.js');
// 输出 b 模块中的 version 变量
console.log(a.version);
// 调用 b 模块中的 sayHi 方法并输出其返回值
console.log(a.sayHi('启嘉'));
模块成员的导出的另一种形式
module.exports.version = version;
module.exports.version = sayHi;
exports
是 module.exports
的别名(地址引用关系),导出对象最终以 module.exports
为准
模块导出两种方式的联系与区别
Node 运行环境提供的 API 因为这些 API 都是以模块化的方式进行开发的,所以我们又称 Node 运行环境提供的 API 为系统模块
// f: file 文件
// s: system 系统
// 文件操作系统
// 导入模块
const fs = require('fs')
// [] 可选项 callback 回调函数
fs.reaFile('文件路径/文件名称'[,'文件编码'],callback);
// 1. 通过模块的名字 fs 对模块进行引用
const fs = require('fs')
// 读取文件语法示例
// 2. 通过模块内部的 readFile 读取文件内容
fs.readFile('./01_helloworld.js','utf-8' ,(err,doc) => {
// 如果文件读取发生错误,包含错误信息 参数 err 的值为错误对象 否则 err 的值为 null
// doc 参数为文件内容 - 读取的结果
// 如果文件读取正确 err 是 null
if (err == null) {
// 在控制台中输出文件内容
console.log(doc);
console.log(err);
}
});
fs.writeFile('文件路径/文件名称','数据',callback);
const fs = require('fs')
const content = '<h3>正在使用 fs.weiteFile 写入文件内容</h3>';
fs.writeFile('./demo.txt',content, err => {
if (err != null ){
console.log(err);
return;
}
console.log('文件写入成功');
});
为什么要进行路径拼接:
语法示例:
path.join('路径','路径',...)
相对路径和绝对路径
__dirname
获取当前文件所在的绝对路径概念:别人写好的、具有特定功能的、我们能直接使用的模块
由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包。
存在形式:
第三方模块的存储和分发仓库:npmjs.com
npm(node package manager):node 的第三方模块管理工具
全局安装与本地安装
第三方模块 nodemon
nodemon 是一个命令行工具,用以辅助项目开发
在 Node.js 中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐
使用步骤:
第三方模块 nrm
nrm(npm registry manager):npm 下载地址切换工具
npm 默认的下载地址在国外,国内下载速度慢
使用步骤: