node.js学习过程中编写博客系统中遇到的坑

一、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>和正则式匹配,而是以转义符的形式去匹配的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值