Nodejs的模块化
2021-07-13 02:06
标签:应用 cti 说明 cap 思想 扩展名 .exe 组织 exit 使用核心模块之前首先要导入模块 path模块 basename() 获取文件名+后缀 dirname() 获取目录 extname() 获取文件的扩展名 join() 合并路径 parse() 把路径转换为一个对象 format() 把一个路径对象转换成一个路径字符串 delimiter 环境变量的分隔符,可以跨平台 windows下是; 其它平台 : url模块 parse() 把字符串的路径转换成对象 format() 把路径对象转换成字符串 querystring模块 parse() 把参数字符串解析成对象 定义文件模块 add.js 使用文件模块 main.js CommonJS的包规范给程序员提供了组织模块的标准,减少沟通成本 包的使用: 导入包的执行过程 require("calc") package.js 创建包的标准方式 一个标准包的结构 名称 |功能 |---|---| package.js |包描述文件 bin |存放可执行文件 lib |存放JavaScript代码 doc |存放文档 test |存放单元测试用例代码 README.md |说明文档,描述包的作用和用法 把包发布到NPM官网 https://www.npmjs.com/ 错误 安装包 require()加载规则 Nodejs的模块化 标签:应用 cti 说明 cap 思想 扩展名 .exe 组织 exit 原文地址:http://www.cnblogs.com/zhengyuan1314/p/7080337.html1. Node.js中的模块化简介
在后台开发语言中,比如Java、C#。他们都是隐含模块化的,Node.js默认帮我们提供了模块化这种机制。
在服务器端,我们想要使用底层的一些功能需要导入一些“包”来对其操作,比如操作文件、网络需要导入对应的包。其它语言中都是基于类来实现的模块化的思想,使用类来组织文件和文件之间的关联。
而Node.js中使用的是JavaScript语言,ECMAScript仅仅规定了基本的语法的书写,并没有规定文件之间
关联,也就是说每个js文件之间是独立的,Node.js已经帮我们实现了js文件之间的关联(模块化)
Node.js中的模块化是基于CommonJS规范的
2. Node.js的核心模块
path.basename("/foo/hello/world/123.html")
//第二个参数,去掉获取的文件名中的相同部分
path.basename("c:/foo/hello/world/123.html",".html")
path.dirname("/foo/hello/world/123.html")
path.extname("/foo/hello/world/123.html")
var p1 = "c://abc/xyz";
var p2 = "/123/456";
console.log(path.join(p1,p2));
path.parse("c:\\home\\hello\\world\\123.html")
{ root: ‘c:/‘,
dir: ‘c://home/hello/world‘,
base: ‘123.html‘,
ext: ‘.html‘,
name: ‘123‘ }
var obj = { root: ‘c:\\‘,
dir: ‘c:\\home\\hello\\world‘,
base: ‘123.html‘,
ext: ‘.html‘,
name: ‘123‘ }
console.log(path.format(obj));
var uri = "http://www.baidu.com:8080/images/1.jpg?version=1.0&time=1123#abcd";
console.log(url.parse(uri));
var obj = {
protocol: ‘http:‘,
slashes: true,
auth: null,
host: ‘www.baidu.com:8080‘,
port: ‘8080‘,
hostname: ‘www.baidu.com‘,
hash: ‘#abcd‘,
search: ‘?version=1.0&time=1123‘,
query: ‘version=1.0&time=1123‘,
pathname: ‘/images/1.jpg‘,
path: ‘/images/1.jpg?version=1.0&time=1123‘,
href: ‘http://www.baidu.com:8080/images/1.jpg?version=1.0&time=1123#abcd‘ };
var str = url.format(obj);
console.log(str);
var obj = querystring.parse("version=1.0&time=123");
console.log(obj);
3. 核心模块存在哪里?
4. 文件模块(自定义模块)
function add(a,b) {
return a + b;
}
//导出成员
exports.add = add;
//module.exports.add = add;
var obj = require("./add.js");
console.log(obj.add(5,6));
//使用相对于main.js 的方式查找add.js
var obj = require("./add.js");
var obj = require("./add");
//下面这种方式是引用核心模块或者包
//var obj = require("add");
5. 包
名称
功能
name
包名称
description
包介绍,介绍包的功能
version
版本号,用于版本控制
keywords
关键词数组,用于在npm中搜索
main
require引入包时优先检查此字段
dependencies
标记当前包所依赖的包列表,npm会自动加载依赖的包
Author
包作者
License
开源许可
{
"name": "calcpack",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": { //可以通过npm run来执行
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
6. 发布包
}] "name":"nllcode",
"email":"xxxxx@qq.com"