1-----node简介
2—模块化
3—node的API
4----导入
5----fs文件
6—导出
node其实是一个平台,使用c++开发。
node提供了一种运行环境。让js可以运行在服务器上。
2----模块化
1、模块化为了工作方便,合作化开发
导出
export var a=123;
export {a,b,c};
export {a as b}
导入
import{a,b};
import{ a as a1,b} from '文件地址'
import命令具有提升效果,会提升到整个作用域的最前面
import * as 变量(存储的是所有导入的变量) from '文件地址';整体加载
匿名导出
export default
导入的时候,名字可以自定义 import 变量名 from '地址'
3—node的API
// window是在客户端的时候需要,在服务器端没有这个概念。有了global对象
// js的基础语法ECMAScript在node里面是可以使用 dom和bom不能使用
//全局对象
global.console.log(11);
// 单次定时器和多次定时器都可以使用
// var timer=setInterval(()=>{
// console.log(111)
// },1000);
// setTimeout(()=>{
// clearInterval(timer)
// },3000)
// ctrl+c终止代码执行
// 上/下方向箭头 可以找到之前的指令
// 当前文件所在目录
console.log('dirnmae='+__dirname);
// 文件地址
console.log('filename'+__filename);
// 操作系统信息
console.log(process.arch);
// 数组 第一个值代表的是node安装地址 第二个值当前文件地址
console.log(process.argv);
// node内部没有集成那么多模块,有些模块需要专门引入
// 使用require引入模块
const path=require('path');
// path.extname得到的是文件后缀
// console.log(path.extname(__filename));
// 如果是一个目录,没有后缀。
// console.log(path.extname(__dirname));
// path.dirname获取的是当前文件所在的目录
// console.log(path.dirname(__filename));
// console.log(path.dirname(__dirname));
// 解析地址,把字符串转化为对象
// console.log(path.parse(__filename))
// var parse=path.parse(__filename);
// format解析地址 把对象转化为字符串
// var format=path.format(parse);
// console.log(format);
// absolute判断是否是绝对路径 服务器环境下 目录最前面有/就是绝对路径
// console.log(path.isAbsolute('/foo/bar'))
// console.log(path.isAbsolute('/baz/..'))
// console.log(path.isAbsolute('qux/') )
// console.log(path.isAbsolute('.') )
// path.join()拼接路径并且自动解析
// ..向上一级
// console.log(path.join(__dirname,'my','txt.txt','..','..'));
// normalize解析路径
// console.log(path.normalize('C:\\temp\\\\foo\\bar\\..\\'))
// path.relative(from,to)从第一个路径如何找到第二个路径
// console.log(path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'))
// 包含了path常用的一些方法
console.log(path.posix);
4----导入
// 导入的时候使用require()./代表的是当前目录
// 如果直接写模块名 ,
// 会去node_modules文件夹寻找模块a(文件夹的名字是a),
// 把文件夹a内部的index.js作为主入口(如果想要别的文件作为入口文件,引入package.json文件配置main属性:"主文件名字")
var n=require('a');
console.log(n);
年 月 日
var formdate=require('formatDate');
console.log(formdate(new Date()))
module.exports=function(date){
var year=date.getFullYear();
var month=date.getMonth()+1;
var day=date.getDate();
var hour=date.getHours();
var minute=date.getMinutes();
var second=date.getSeconds();
return`${year}年${month}月${day}日${hour}时${minute}分${second}秒`
}
5----fs文件
const fs=require('fs');
const path=require('path');
// 创建文件夹
// fs.mkdir(文件地址,(err)=>{成功以后的回调})
// fs.mkdir(path.join(__dirname,'my'),(err)=>{
// if(err) throw err;
// console.log('文件夹创建成功')
// })
// 删除文件夹 fs.rmdir(文件地址)
// fs.rmdir(('./my'),(err)=>{
// if(err) throw err;
// })
// 读文件夹/目录 fs.readdir(文件地址,成功以后的回掉函数)
// fs.readdir(__dirname,(err,files)=>{
// if(err) throw err;
// console.log(files);
// })
// 检测文件状态,检测文件是目录还是文件。
// fs.stat(文件地址,(err,stats)=>{判断状态})
fs.stat(__filename,(err,stats)=>{
// stats.isDirectory()检测是否是文件夹 true/false
// stats.isFile()检测是否是文件 true/false
console.log(stats.isDirectory());
})
// 读取当前目录,判断当前目录下每一个文件的状态。
fs.readdir(path.join(__dirname,'mytest/src'),(err,files)=>{
if(err) throw err;
console.log('11111111');
files.forEach((item,index)=>{
fs.stat(path.join(__dirname,'mytest/src',item),(err,stats)=>{
if(stats.isDirectory()){
console.log(item+'目录');
}else{
console.log(item+'文件');
}
})
})
})
6—导出
// 导出 module.exports如果多次导出,值以最后一次为准
// module.exports='hello';
// module.exports='welcome'
// exports.变量名 多次导出
exports.m='hellow';
exports.n='welcome';