CNode

代码没经过任何修改,交替出现404和200,奇怪

Rromboo发布于14 年前最后回复14 年前6 回复4610 浏览0 收藏

日志: GET /status 200 6ms GET /status 404 4ms GET /status 200 6ms GET /status 404 4ms GET /status 200 12ms GET /status 404 2ms GET /status 200 5ms

代码没有任何修改,刷新就变,而且是交替出现,有遇到过么

查看回复

回复 (6)

R
romboo#1·14 年前

用正则做路由,app.all(/^/(\w+)(/(\w+))?$/ig, function(req, res, next){

R
romboo#2·14 年前

奇怪,不用正则没事。如:app.all("/:module/:id?", function(req, res, next){

L
leizongmin#3·14 年前
引用 romboo奇怪,不用正则没事。如:app.all("/:module/:id?", function(req, res, next){

因为正则对象有个lastIndex属性,如果下次使用相同的正则变量来匹配时,但是没有将lastIndex置为0,就有可能出现上面的情况,这个算是一个坑吧。 参考这里:http://www.w3school.com.cn/js/jsref_lastindex_regexp.asp

L
leizongmin#4·14 年前
引用 romboo奇怪,不用正则没事。如:app.all("/:module/:id?", function(req, res, next){

或者你应该去掉正则后面那个g属性,这样就不会受lastIndex的影响了

A
a272121742#5·14 年前

用的express?推荐rrestjs!

R
romboo#6·14 年前
引用 romboo奇怪,不用正则没事。如:app.all("/:module/:id?", function(req, res, next){

@leizongmin 不明白为什么刷新会交替出现匹配不上,而且很规则,我一会儿试试取消g试试。你的意思是上一次请求匹配的正则会对下一次请求产生影响么?

参与回复
登录后即可参与回复。登录