cnpm装出来的包比较乱,不影响使用。一般网络情况允许的情况下,还是使用npm
cnpm安装 npm install -g cnpm --registry=registry.npm.taobao.org
cnpm功能和npm一样,使用方法一样只是多了一个c cnpm install
安装 cnpm install 文件名字@版本号 写依赖-S/-D/-g
包管理工具只是node的一个功能而已。
模块化可以看另一篇文章:blog.csdn.net/weixin\_530…
4、执行node文件
执行js相当于在服务器环境下执行: node 文件名 终止代码ctrl+c
执行文件的时候,找到文件所在目录,直接在node环境下(或者在目录下cmd,前提要有node环境)执行文件或者文件名字,不能取node
5、global
global是全局对象,可以直接使用,不需要单独引入.
node文件相当于是服务器的不是客户端的
服务器端没有了window,有global
global相当于客户端中的window
global.console.log('这是打印信息');
定时器例子:
global.setInterval(function(){
console.log(1111);
}, 1000)
global.setTimeout(()=>{
console.log('这是单次定时器')
}, 100)
6、寻找路径
当前文件所在目录
console.log(__dirname);
当前文件地址
console.log(__filename);
7、const fs
导入模块
const xxx =require(‘模块’)
require(模块) 首先判断是否有模块。
内置的模块一般是已经定义好的。
自己写的或者下载的模块要放在node_modules内部,最后新建该模块的文件夹,因为执行的时候首先会去node_modules内部寻找该模块,找到就进行加载。
一般默认index.js是主入口文件,如果别的文件作为主入口,一定要配置package.json{“main”:“主入口文件”}
如果index.js和package.json同时存在,以package.json配置为准
如果没有package.json和index.js,会报错:Cannot find module “xxx”。
导出则:exports.变量=值
fs是一个内置的模块,需要单独引入。
模块引入的时候,一般使用const
fs是文件系统,一般用来和文件有关的操作
const fs=require('fs');
写文件
fs.writeFile('文件名','数据',(err)=>{})
fs.writeFile('my.xls','hello node',(err)=>{
if(err) throw err;
console.log('文件书写成功')
})
删除文件
fs.unlink('文件名字',(err)=>{})
fs.unlink('./my.xls',(err)=>{
if(err) throw err;
console.log('文件删除成功')
})
读文件
fs.readFile('./my.txt','utf-8',(err,data)=>{
if(err) throw err;
// data默认接收到的数据是buffer。如果需要转化。
// 两种方式1、data.toString() 2、增加参数'utf-8'
console.log(data)
console.log(data.toString())
})
新建文件夹
fs.mkdir('文件夹名字',(err)=>{}) 如果该目录存在,去创建会报错
fs.mkdir('jd',(err)=>{
if(err) throw err;
})
删除目录
fs.rmdir('jd',(err)=>{
if(err) throw err;
})
读取文件夹
fs.readdir(__dirname,(err,files)=>{
if(err) throw err;
// files存储的是当前文件夹下的所有文件
console.log(files);
})
stat获取当前路径的状态
fs.stat(__dirname,(err,stats)=>{
if(err) throw err;
// isFile()判断是否是文件
console.log(stats.isFile());
// isDirectory()判断是否是目录
console.log(stats.isDirectory())
})
8、创建文件并进行遍历输出名称
创建淘宝文件夹以及里面其他文件
const fs=require('fs');
function demo(proname){
return {
proName:proname,
prolist:[
{
name:'css',
这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道
HTML
-
HTML5有哪些新特性?
-
Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?
-
如何实现浏览器内多个标签页之间的通信?
-
⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?
-
简述⼀下src与href的区别?
-
cookies,sessionStorage,localStorage 的区别?
-
HTML5 的离线储存的使用和原理?
-
怎样处理 移动端 1px 被 渲染成 2px 问题?
-
iframe 的优缺点?
-
Canvas 和 SVG 图形的区别是什么?
JavaScript
-
问:0.1 + 0.2 === 0.3 嘛?为什么?
-
JS 数据类型
-
写代码:实现函数能够深度克隆基本类型
-
事件流
-
事件是如何实现的?
-
new 一个函数发生了什么
-
什么是作用域?
-
JS 隐式转换,显示转换
-
了解 this 嘛,bind,call,apply 具体指什么
-
手写 bind、apply、call
-
setTimeout(fn, 0)多久才执行,Event Loop
-
手写题:Promise 原理
-
说一下原型链和原型链的继承吧
-
数组能够调用的函数有那些?
-
PWA使用过吗?serviceWorker的使用原理是啥?
-
ES6 之前使用 prototype 实现继承
-
箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?
-
事件循环机制 (Event Loop)