node模块
npx http-server
它是一个快速搭建本地路由的命令,也就是一个本地的server
,相当于
const http =require('http')
const server = http.createServer((req,res)=>{
let url =request.url //将请求的url传给后端
response.write(url)//写入url
response.end()//如果不写end他就会一直等
//或者这种简写
response.end(url)//这样写的话第二行就可以省略
})
server.listen(8090,'127.0.0.1',()=>{
console.log('服务器启动成功')
})
node的一些内置模块
网络通信(http
,https
)
const http=require('http')
http.get('地址',(res)=>{
let str=''
res.on('data',(chunk)=>{str+=chunk}),
res.on('end',()=>{console.log(str)})//nodejs可以访问一个跨域的请求
})
文件读写(fs
)
//创建文件
const fs =require('fs')
fs.write('文件写在哪','内容',(err,data)=>{//读写文件执行的错误优先的回调,也就是第一个是错误的回调函数
if(err){
}else{
console.log('文件创建成功')
}
})
进程的管理(process
)
console.log(process.argv);//就是当前的文件路径进程
路径(path
)
- 获取路径:path.dirname(filepath)
- 获取文件名:path.basename(filepath)
- 获取扩展名:path.extname(filepath)
1.1 获取路径 path.dirname()
const path = require('path');
path.dirname('/foo/bar/baz/a.js');
// 返回: '/foo/bar/baz'
获取文件名 path.basename()
var path = require('path');
// test.js
console.log( path.basename('/tmp/demo/js/test.js') );
// test
console.log( path.basename('/tmp/demo/js/test.js','js') ); //使用两个参数去掉后缀
//test
console.log( path.basename('/tmp/demo/js/test/') );
// test
console.log( path.basename('/tmp/demo/js/test') );
1.3 获取文件扩展名 path.extname()
绝对路径也被成为盘符路径 相对路径是相对于当前文件的路径
从后面的 . 点开始截取 比如
index.
返回.
,index
返回 空""
var path = require('path');
var filepath = '/tmp/demo/js/test.js';
// 输出:.js
console.log( path.extname(filepath));
1.4路径拼接path.join() path.resolve()
path.join()
//空的或者'/'&&'./'拼接 '../'拼接路劲的上一个路径
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// 返回: '/foo/bar/baz/asdf'
path.join('/foo', 'bar', 'baz/asdf', 'quux', '.');
// 返回: '/foo/bar/baz/asdf/quux'
path.join('/foo', '/bar', 'baz/asdf', 'quux');
// 返回: '/foo/bar/baz/asdf/quux'
path.join('/foo', '//bar', 'baz/asdf', 'quux');
// 返回: '/foo/bar/baz/asdf/quux'
path.join('/foo', './bar', 'baz/asdf', 'quux');
// 返回: '/foo/bar/baz/asdf/quux'
path.join('/foo', '../bar', 'baz/asdf', 'quux');
// 返回: '/foo/baz/asdf/quux'
path.resolve()
path.resolve()
方法会把一个路径或路径片段的序列解析为一个 绝对路径。
//'./'跟没有是直接拼接 '/'不拼接 '../'拼接上一级
path.resolve('/foo/bar', './baz');
// 返回: '/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/');
// 返回: '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 则返回 '/wwwroot/static_files/gif/image.gif'
1.5 path.normalize(path)
path.normalize(path)
方法会规范化给定的 path,并解析 ‘…’ 和 ‘.’ 片段
- 当发现多个连续的路径分隔符时(如 POSIX 上的 / 与 Windows 上的 \ 或 /),它们会被单个的路径分隔符来代替。
- 末尾的多个分隔符会被保留。
- 如果 path 是一个空字符串,则返回 ‘.’,表示当前工作目录。
//注意事项跟前几个差不多,'/''/.'都是保留当前目录'../'返回上级目录
//注意'//'解析一个'/'
path.normalize('/foo/bar//baz/asdf/quux/..');
// 返回: '/foo/bar/baz/asdf',解析了 .. ,返回了上一层目录
path.normalize('/foo/bar//baz/asdf/quux/.');
// 返回: '/foo/bar/baz/asdf/quux',解析了 .
path.normalize('/foo/bar//baz/asdf/quux/');
// 返回: '/foo/bar/baz/asdf/quux/'
path.normalize('/foo/bar//baz/asdf/quux//');
// 返回: '/foo/bar/baz/asdf/quux/', 末尾的多个分隔符,只保留了一个
path.normalize('');
// 返回:'.',表示当前工作目录
1.6 path.parse(path)
path.parse()
方法返回一个对象,对象的属性表示 path 的元素。 尾部文件分隔符会被忽略。
path.parse('/home/user/dir/file.txt');
// 返回:
// { root: '/',
// dir: '/home/user/dir',
// base: 'file.txt',
// ext: '.txt',
// name: 'file' }
1.7 path.format(pathObject)
path.format()
方法会从一个对象返回一个路径字符串。 与 path.parse() 相反。
- 当 pathObject 提供的属性有组合时,有些属性的优先级比其他的高:
-如果提供了 pathObject.dir, 则 pathObject.root 会被忽略;
-如果提供了 pathObject.base 存在,则 pathObject.ext 和 pathObject.name 会被忽略
// 如果提供了 `dir`、`root` 和 `base`,则返回 `${dir}${path.sep}${base}`。
// `root` 会被忽略。
path.format({
root: '/ignored',
dir: '/home/user/dir',
base: 'file.txt'
});
// 返回: '/home/user/dir/file.txt'
// 如果没有指定 `dir`,则 `root` 会被使用。
// 如果只提供了 `root` 或 `dir` 等于 `root`,则平台的分隔符不会被包含。
// `ext` 会被忽略。
path.format({
root: '/',
base: 'file.txt',
ext: 'ignored'
});
// 返回: '/file.txt'
// 如果没有指定 `base`,则 `name` + `ext` 会被使用。
path.format({
root: '/',
name: 'file',
ext: '.txt'
});
// 返回: '/file.txt'
path.relative(from, to)
获取相对路径
从 from 路径,到 to 路径的相对路径(基于当前工作目录)
- 如果from, to 指向同个路径,那么返回空字符串;
- 如果from, to 中任一者为空,则当前工作目录会被用于代替空字符串
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
// 返回: '../../impl/bbb'
path.relative('/data/orandea', '/data/orandea');
// 返回: ''
path.relative('./path.md', '');
// 返回: '..'
判断是否为绝对路径 path.isAbsolute(path)
path.isAbsolute()
方法会判定 path 是否为一个绝对路径。
如果给定的 path 是一个长度为零的字符串,则返回 false
path.isAbsolute('/foo/bar'); // true
path.isAbsolute('/baz/..'); // true
path.isAbsolute('qux/'); // false
path.isAbsolute('.'); // false
fs文件模块
通过读取路径来读取文件内容
fs.writeFile
写入文件,第一个参数文件名,第二个参数写入内容,第三个回调(失败回调)
fs.stat
获取文件状态
fs.unlink
删除文件