经验分享

如何解决Node.js里“Cannot find module”的错误?

Cannot find module 'xxx' 这个错是在写Node.js代码时一个很常见的错误,可以按照下面的思路来解决。分三种情况,可以直接按自己的情况来看:1. 自己的代码文件找不到。比如下面的错误:按照以下的思路来逐步排查原因:确认文件./File1.js存在如果第1步没问题,确定require栈里最后一个文件C:\my-code\src\routes\index.js里面require...

如何避免HTML里面的JSON数据导致XSS安全问题?

在HTML里面,在<script>节点里面输出页面上需要用到的状态数据是个很常见、标准的用法,比如:这样,在网页里面运行的JS就可以很容易读取这些数据,然后为UI加上更动态的功能。但是,这样安全吗?之前我以为是的,但是后来因为在页面上加了这样一段示例代码,整个页面就乱了。页面变成了这样:很明显,是页面的HTML结构被破坏了,并且是JSON里面的数据导致的。把页面上有问题的JSON检查了一下,发现浏...

如何用JavaScript里校验字符串?

为了保证程序能正常运行,及安全运行,我们通常都需要记得要校验用户的输入。在JavaScript里,validator这个库可以很容易做好这件事情。在Node.js里,可以这么写:在ES6里,可以这么写:这种方式可以方便webpack等打包工具使用tree-shaking的功能,来减少打包出来的JS文件的体积。在浏览器里,可以这么写:详细内容,可以参考文档:https://www.npmjs.com...

如何在Node.js里发送电子邮件?

发送电子邮件是个软件系统里很常用的一个功能,虽然目前短信通知也很流行,但是邮件仍然是一个不可缺少的部分。在Node.js里发送电子邮件,也很简单,我们只要用Nodemailer这个库就能实现了。我们只需要把上面transporter里需要替换的部分用配置里的值,然后sendMail()里的发件人(from)、收件人(to)、主题(subject)等内容替换成自己的内容就可以了。

如何在JavaScript里面mock时区?

在做JavaScript测试的时候,如果我们的代码里有用到日期,那么可能在某些情况下会导致测试不能稳定跑。比如:对包含日期显示的UI做了Snapshot测试,但是测试代码可能会在本地、远程服务器等环境跑,时区却不一样。这种情况下,我们就希望执行测试的时候,代码获取的是一个固定的时区,而不是运行电脑设置的时区。我找了一些资料,发现有一些办法:1. 使用环境变量来设置Node.js代码的时区。可以使用...

如何用JavaScript爬取一个网页?

爬取一个网页是一个网络爬虫的一个最基本的操作,那么如何用JavaScript来实现这个呢?简单来说,爬取一个网页,需要以下三步:1. 根据URL下载一个网页我们使用axios库来下载我们的网页。Axios是一个非常简单易用、符合标准,又支持Promise的一个HTTP客户端的库,因此用它来开始我们的示例非常容易。在上面的例子里,我们实现了一个downloadUrl()函数,这个函数会下载通过参数u...

如何解决Hapi.js因为第三方cookie导致的400错误?

网站使用百度统计的时候,如果访问了百度站长平台,等和百度有关的网站,那么可能会导致cookie里面被加入了一些重复或者不规范的cookie。这时候,使用Hapi.js的网站就会报400错误的页面:{"statusCode":400,"error":"Bad Request","message":"Invalid cookie value"}如果出现这个问题,如何解决?问题原因是Hapi.js对这种...

如何在Chrome里获得console.timeEnd()的值?

在写上一篇示例代码《如何在JavaScript里拼接字符串?》的时候,我想让最后一个例子里的代码里console.timeEnd()的值能够在运行结果框里面显示,但是却无法找到解决的办法。因此,专门想一下如何解决这个问题,网上搜索了一下,建议是这样的:使用window.performance.now()来计时,代码可以这么写:这样做,实际上是不再用console.time()/console.ti...

如何在JavaScript里拼接字符串?

如果你有Java或其他语言的编程经验,那么可能会疑惑,在JavaScript里,没有StringBuilder之类的类或对象可以用,那么如何拼接字符串才是高效的呢?一般来讲,JavaScript里拼接字符串有4种方式:1. 使用+运算符来拼接这种方式比较常见,用+将字符串连起来,得到一个新的字符串。这种方法,可能许多编程老手会说有性能问题,理由是字符串是不可变的,因此每次拼接操作都会重新创建一个新...

仅对UI做快照测试(Snapshot Testing)的问题

快照测试做起来轻松便捷,因此在写前端单元测试的时候,这肯定是一个考虑的一项,但是我们能把快照测试作为主要的测试手段吗?在遗留系统中工作时,为了保证系统继续运行且不破坏遗留代码功能,快照测试的价值是不可否认的。然而,我们看到了使用 仅快照测试 作为主要测试机制这种常见但有害的做法。快照测试可以验证组件在 DOM 中生成的确切结果,但不能验证组件的行为。 因此,它可能是脆弱且不可靠的,还会催生“仅删除...

最新课程

Chrome开发者工具教程

Chrome DevTools的简明教程

初级
免费
JSON简明教程

JSON格式的简明教程

初级
免费
编程概念

面向新程序员的简短教程

初级
免费
初级
免费
JavaScript教程

介绍基础的JavaScript知识,学习用JavaScript进行编程

初级
免费
编程入门导引

帮编程初学者解决方向上的疑惑

初级
免费
HTML/CSS精简教程与实例

面向初学者的HTML5和CSS的教程

初级
免费
Git使用简明教程

快速学习Git进行高效的代码管理

初级
免费
Python 2语言教程

学会用Python语言来编程

初级
免费
程序员面试指南

为找到理想的工作,做好完善的准备

中级
免费