首页 > 代码库 > nodejs部分

nodejs部分

导入模块 var path = require("path");

path.basename(‘/foo/bar/baz/asdf/quux.html‘)获取文件名+后缀
path.basename(‘/foo/bar/baz/asdf/quux.html‘,‘.html‘)

path.dirname(‘/foo/bar/baz/asdf/quux‘)获取目录
path.extname("/foo/hello/world/123.html") 获取文件的扩展名
path.join(‘/foo‘, ‘bar‘, ‘baz/asdf‘, ‘quux‘, ‘..‘)必须连接字符串,合并路径
path.parse(‘/home/user/dir/file.txt‘)把路径转换为一个对象
// returns
// {
// root : "/",
// dir : "/home/user/dir",
// base : "file.txt",
// ext : ".txt",
// name : "file"
// }

var obj = { root: ‘c:\\‘,
dir: ‘c:\\home\\hello\\world‘,
base: ‘123.html‘,
ext: ‘.html‘,
name: ‘123‘ }
console.log(path.format(obj));把一个路径对象转换成一个路径字符串

delimiter 环境变量的分隔符,可以跨平台 windows下是其它平台
path.delimiter ";"

path.sep 路径的分隔符 windows下是\ 其它下是/ "\\"

path.isAbsolute() 是否是绝对路径

var url=require("url");返回的是一个对象,类似的require都是返回对象
url.parse(urlStr);返回对象
url.parse(str,true);有true时,query对应值是一个对象 query: { query: ‘string‘, id: ‘123‘
},
//Url {
// protocol: ‘http:‘,//协议
// slashes: true,//斜杠,没有斜杠返回null
// auth: ‘user:pass‘,//url里的用户名密码
// host: ‘host.com:8080‘,//域名+端口
// port: ‘8080‘,//端口
// hostname: ‘host.com‘,// p/a/t/h
// hash: ‘#hash‘,
// search: ‘?query=string&id=123‘,
// query: ‘query=string&id=123‘,
// pathname: ‘/p/a/t/h‘,
// path: ‘/p/a/t/h?query=string&id=123‘,
// href: ‘http://user:pass@host.com:8080/p/a/t/h?query=string&id=123#hash‘ }


url.format(urlObj);对象转化成字符串


querystring模块

导入模块 var querystring = require("querystring");
parse() 把参数字符串解析成对象
var obj = querystring.parse("version=1.0&time=123");
console.log(obj);
stringify() 把一个对象转换成一个字符串
escape() url进行编码
unescape() url进行解码

核心模块存储在node.exe中,当node.exe运行的时候,核心模块会被加载,require的时候会加载到
内存
在github上可以找到源代码,lib文件夹下
核心模块的执行速度比较快

文件模块(自定义模块),用户写的模块
一般app.js是入口模块,可执行模块
app.js中
var o=require("./03add");
//node中要加./
//直接写名字会把它当作核心模块或者包来处理



包的使用:
所有模块放在一个文件夹(包名)
包放在当前项目中的node_modules文件夹下
包中定义一个index.js(文件名不可以更改)导出所有模块(包的出口,引用时候的入口)
引用包(约定大于配置)

标准包
在引入的文件夹,在此处打开命令窗口,然后node init回车(node init -y表示全部使用默认值)
输入包名字,设置版本号1.兼容2.增加3.修改bug
添加描述的内容
设置入口(当找不到index的时候,会找这个入口)
设置执行的命令
keywords:关键词
license:(ISC) 输入ISC
yes

Node.js的调试:
console.log()
Node.js自带的调试器
node debug a.js
常用命令
help 查看可用命令
n 进入下一步
s 单步进入
o 步出
WebStorm中调试

严格模式:ES5中出现的模式
在作用域的最上面 "use strict"
js文件的最开头
function的开头
没有变量提升,必须先定义再使用
有块级作用域


常量 const
常量的一旦赋值,不能改变
有块级作用域
没有变量提升,先定义再使用
不可以重复定义

string的扩展方法
includes() 返回布尔值,是否包含,第二个参数从第几个位置开始查找
startsWith() 返回布尔值,是否以...开头,第二个参数从第几个位置开始查找
endsWith() 返回布尔值,是否以...结尾,第二个参数, 前n个字符以...结尾
repeat() 重复次数


变量 let
没有变量提升,必须先定义再使用
有块级作用域

"use strict";
let name="world";
let template=`hello ${name}`;
console.log(template);

nodejs部分