一、Joi.validate is not a function
这个是新版本的Joi模块中弃用了之前的方法,所以报的错。解决办法在下面的链接:
解决办法
解决办法
二、今天使用联合查询时遇到个报错:SyntaxError: Unexpected token R in JSON at position 0
这个错误的产生原因是:当集合联合查询和渲染页面模板同时进行时会导致两者冲突,从而导致无法渲染页面。
解决方案就是在populate后面链式调用lean()
三、
问题:在使用正则式去掉HTML标签时,发现一个怪异的问题。就是使用了在正则式里使用边界符,就无法成功替换,去掉分隔符却又可以正确的替换。
运行的结果:可以看到文章内容是包裹的p标签没有成功被替换。
解决办法是去掉正则式里的边界符:
换掉之后结果就正确了:
搞定问题之后想了想问题的原因,感觉案例来说这两个正则式应该是一样的,但是结果却不一样。我去浏览器的控制台分别让
var a = /<[^>]+>/;
var b = /^<[^>]+>$/;
console.log(a.test('<p>'));
console.log(b.test('<p>'));
这样验证的结果却又是一样的:
这就让我更加疑惑了。
然后我去Sources里查看从后台获取的网页源码,
发现原来是从后端获取的源码里,HTML标签都是转义符形式的,并非是<p>样式:
所以在与正则式匹配时并非是<p>和正则式匹配,而是以转义符的形式去匹配的