一.写入文件内容
红线框的单词意思是要写入的内容必须是字符串,我们实际写入的是data这个数组,所以报错.
解决方法:把数组转为json类型的字符串
二.找不到文件目录
1.错误原因:readFile.js文件存放在code这个文件夹里面,当我们在code文件夹的上一级目录中运行readFile.js文件时,就会报错
2.解决方法:找到readFile.js所在的目录,再运行readFile.js文件
三.问题: xxx.foreach is not a function
错误描述: xxx调用了foreach, 但不是一个方法
有问题代码
var arr = [1, 2, 3];
arr.foreach(function (val) {
console.log(val);
})
报错提示
- 分析
Uncaught TypeError: arr.foreach is not a function
未捕获到 引用错误: arr.foreach 不是一个方法
说白了, 就是arr对象身上没有foreach方法, 为啥呢?
你打印arr变量, 展开前面小箭头, 你好好看看foreach方法怎么写的 是不是叫forEach
注意了JS这门语言是区分大小写的 就是foreach和forEach不是一个人
- 解决
arr.forEach
- 总结: 在遇到 xxx.yyy 不是一个方法, 那就证明这个对象没有这个方法, 打印这个对象先看看 好好合计合计
四.报错: 404 (Not Found)
错误描述: 没有找到你想访问的
- 有问题代码:
axios({
method: 'get',
url: 'http://123.57.109.30:3006/api/getbooks2',
params: {
id: 1,
bookname: '西游记'
}
}).then(function (res) {
console.log(res)
})
- 报错图示
-
分析: axios.js 不是我的代码啊, 左边有个箭头展开, 下面有个小箭头指向的是你自己的代码引发的错误, 所以发现是axios请求有问题
-
解决
根据业务, 把url改成正确的后台地址即可
- 总结:
只要再看到404, 就是你要请求的url地址不对, 具体是哪一个, 根据报错的提示行数即可找到
五.问题: failed to push some refs to 'xxxxx'
错误描述: xxxx地址看你自己的, 跟我的可能不一样, 但是前面错误提示是一样的
- 报错图示
- 分析
error: src refspec master does not match any
错误: master分支里没有任何匹配的东西
error: failed to push some refs to 'gitee.com:itcz_jiaoyu/good122.git'
错误: 推送文件到'地址'的时候失败了
综上所述: 是你本地没有暂存和提交, 没什么可以推送的啊
- 解决: 先去git add . 和 git commit -m '提示'
- 总结: 根据英文就知道什么意思啦
六.问题: 网页 Too Many Request
错误描述: 太多请求了,这个问题很常见
- 报错图示
-
分析 Too Many Requests
太多的请求了 这个网站短时间有太多的请求, 就会拒绝正常逻辑响应 -
解决 换个网络 / 等1个小时以后再来注册吧
七.报错: xxxx不是内部或外部命令
错误描述: 本机没有这个命令
- 报错图示
- 分析 nodeomon 不是内部或外部命令, 一切的命令都要安装到电脑里, 而且要成功配置到计算机的环境变量里, cmd终端里才能执行这 个命令程序
nodemon 是替代node命令来实时更新js代码运行的效果的, 很明显单词打错了
// 如果单词没错就是环境没安装对, 重新安装即可
- 解决 nodemon xxxx.js
八.语法报错案例:
Uncaught SyntaxError ==> 未识别的-语法-错误
翻译:未识别的语法错误: 意想不到的标识符
说明项目中书写格式出错 ,
审查代码
VScode或者其他编译器中查找红色波浪线 ,
并加以适当的修改 ,
直到红色波浪线消失
九.常见错误类型
- EvalError:eval函数的错误
- InternalError(非标准):出现在JavaScript引擎内部的错误
- RangeError:范围错误,当一个值不在其所允许的范围或者集合中
- ReferenceError:引用错误,当一个不存在的变量被引用时发生的错误
- SyntaxError:语法错误
- TypeError:类型错误
- URIError:URI错误
十.将一个值赋值给一个无法被赋值的对象
十一. SyntaxError 语法错误
变量名不合规范
十二.给关键字赋值
十三.TypeError:"xxx" 不是函数
十四.关于码云网站的bug
- 报错 'touch’不是内部或外部命令,也不是可运行的程序或批处理文件 报错截图
相关代码 touch README.md
问题 使用码云创建仓库后 , 想和本地代码进行同步 . 在 添加 README.md 文件时 报错了
分析问题 touch 是 Linux 环境下的命令 , 不支持我们在 cmd 中使用
解决问题 使用 echo test>README.md 命令代替 touch README.md 命令
解决问题具体操作
十五.端口号被占用
8081这个端口号已经有人在用了,所以报错
解决方案:换一个端口号 , 一个IP地址的端口可以有65536个,范围是从[0,65535])。不同的端口被不同的软件占用,以提供不同的服务。
十六.git pull命令无法拉取远程仓库的代码
从远程仓库拉取下来的代码不能修改 , 如果一不小心修改了其中一个文件的内容 , 将不能拉取代码 , 这个时候我们可以 git checkout . , 然后git status查看文件状态 , 最后git pull拉取代码。
十七.找不到文件
报错:404
描述:用npm下载包的时候 , 找不到day.js这个包 , 所以报错404 , 很可能是包名写错了 , 正确包名是dayjs。
解决:重新输入正确的包名 , 并且下载这个包
十八.跨域错误
什么原因导致了浏览器报跨域错误: 发起ajax请求的那个页面的地址 和 ajax接口地址 不在同一个域中
跨域错误:不同源的ajax请求====> 报跨域的错误
从http://127.0.0.1:5500/message_front/index.html 请求http://localhost:8080/getmsg属于跨域
解决方法: 使用CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。
CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10(ie8通过XDomainRequest能支持CORS)。
-
cors , 它是一个npm包,要单独下载使用 npm 包 cors
npm i cors -
当做express中的中间件,注意代码应该放在顶部
const cors = require('cors')
app.use(cors())
十九.逗号和加号在JavaScript中的区别还是很大的
如图所示
声明一个对象obj={a:1} ,
如果控制台打印('接到的参数是' , obj) 得到的结果是 : 接到的参数是{a:1}
如果控制台打印('接到的参数是' + obj) 得到的结果是 : 接到的参数是[object Object]
两种不同的结果显而易见
对象和函数转字符串的结果如下 :
obj.toString()===>'[object Object]'
(function fn(){}).toString()===>'function fn(){}'
二十. post接口-传递json格式的参数有误
黑窗口出现这种错误,很可能是因为我们传递参数的时候 , 多写了一些标点符号 , 这个时候可以检查一下参数有没有问题。
经过仔细检查后,发现问题在这个逗号上 , 把它去掉就可以了
二十一.v-for中的key的值是唯一的
上面的错误,大概意思是key的值不能重复,否则报错,v-for是vue中的一个语法。
arr这个数组有一个元素的id是1,list这个数组也有一个元素的id是1,而且两个li标签的目标结构分别是arr和list两个数组,同时两个li标签都是ul的子元素,所以浏览器会报错,因为key的值是唯一的。
解决方法:把目标结构是list数组的li标签放在一个新的ul标签中
二十二.少了一个空格
写代码时,经常会遇到这样的错误,那就是少了一个空格,细节决定成败啊!
上面的错误提示我们,in前面少了一个空格
通过检查源代码,找到了这个bug,马上加一个空格,问题就解决了。
二十三.关于vue单向数据流的错误
在vue中需要遵循单向数据流原则
- 在父传子的前提下,父组件的数据发生变化会通知子组件自动更新
- 子组件内部,不能直接修改父组件传递过来的props => props是只读的
如果在子组件内部私自修改父组件传递过来的props,就会导致上面截图中的错误,所以要小心一点。
父组件
<template>
<div style="border: 6px solid blue; margin: 10px">
<h1>单向数据流-父组件</h1>
<MyCom :name="name" :hobby="hobby" />
</div>
</template>
<script>
// 导入;
import MyCom from "./MyCom.vue";
export default {
data() {
return {
name: "张三",
hobby: ["vue", "react"],
};
},
components: { MyCom },
methods: {
fn() {
this.name = "李四";
this.hobby.push("jquery");
},
},
};
</script>
<style></style>
子组件
二十四.关于计算属性的错误
上面的错误,大概的意思是计算的属性"isAll"已经在数据中定义
v-model="isAll",意思是将变量isAll与input绑定在一起,为了监听复选框的勾选状态
isAll在这里是一个计算属性,所以不能在data里面作为变量使用。
解决方法:把data整体删除
二十五.使用element-ui时少写了一对引号
这个错误大概意思是:无效的prop,类型检查失败的prop "closeOnPressEscape",预期想得到一个布尔值,实际上得到的是值为"false"的字符串
检查代码发现,false外面少了一对引号,加上就可以了,close前面还要加一个冒号。
二十六.关于vuex严格模式的错误
吃饭,睡觉,打豆豆是三个复选框,当我们点击复选框的时候,会报上面的错误
strict:true这行代码意思是开启vuex中的严格模式,严格模式下,控制state的修改只能通过mutations来完成,造成上面错误的根本原因就是因为开了严格模式,严格模式一般在modules文件夹里面的index.js文件中设置。
解决方法:关闭严格模式,注释strict:true这行代码
二十七.关于eslint的错误
开启eslint模式后,可能会出现这个错误
检查代码发现21~26行有空行,这种情况下,运行代码就会报错
解决方法:删除这些空白行
二十八.关于template的错误
错误描述:挂载组件失败:模板或渲染函数未定义,简单来说就是少了一对template标签
template是模板标签,不能少,图中画圈的地方少了一对模板标签,第一行就是模板标签
解决方法: 把template标签补上去
拓展:
template可以显示template标签中的内容,但是查看后台的dom结构不存在template标签。如果template标签不放在vue实例绑定的元素内部默认里面的内容不能显示在页面上,但是查看后台dom结构存在template标签。
注意: vue实例绑定的元素内部的template标签不支持v-show指令,即v-show="false"对template标签来说不起作用。但是此时的template标签支持v-if、v-else-if、v-else、v-for这些指令。
二十九.关于token的错误
发生这个错误可能有三个原因:
- 没有授权
- 没有token值
- token失效 拓展: