CNode

express req.params出现混乱的问题

问答
Ssouldjl发布于8 年前最后回复8 年前9 回复2970 浏览0 收藏

9979F12078EC9350CD977AF3990BCD39.png 如图,很奇怪,不知道为什么会出现这个问题 ?

console.log('find one post query',query)
    mongodb.findOne(query,'posts',function (err,doc) {
          if(err){
              return callback(err)
          }
          console.log('find one post',doc)
        //解析 markdown 为 html
        // doc = doc[0];
         doc.post = markdown.toHTML(doc.post);
        callback(null, doc);//返回查询的一篇文章
    })
	```
	#### 报错信息
	```javascript
	find one post null
/Users/apix/Desktop/express-blog/node_modules/mongodb/lib/utils.js:123
    process.nextTick(function() { throw err; });
                                  ^

TypeError: Cannot read property 'post' of null
查看回复

回复 (9)

H
hewentaowx#1·8 年前

我猜你应该有多个get请求 都是类似 /u/:xxx这样的 当你调get请求的时候 你怎么保证你的get请求没走错路由呢 你传的参应该和你的 :name :day 对应 你上面那个肯定是走到其他接口里面了 你看看在对应的接口里面打印一下 我觉得走错接口了

S
souldjl#2·8 年前
引用 hewentaowx我猜你应该有多个get请求 都是类似 /u/:xxx这样的 当你调get请求的时候 你怎么保证你的get请求没走错路由呢 你传的参应该和你的 :name :day 对应 你上面那个肯定是走到其...

@hewentaowx

req.params-222222 daijl 2018-8-6 dsads
{ name: 'daijl', day: '2018-8-6', title: 'dsads' } 'req.params22222222'
{} 'req.query22222222'
find one post query { name: 'daijl', 'time.day': '2018-8-6', title: 'dsads' }
连接成功!
find one post { _id: 5b68285740729115dfe063c8,
  name: 'daijl',
  time:
   { date: 2018-08-06T10:52:07.374Z,
     year: 2018,
     month: '2018-8',
     day: '2018-8-6',
     minute: '2018-8-6 18:52' },
  title: 'dsads',
  post: '大萨达撒' }
in render one post  { _id: 5b68285740729115dfe063c8,
  name: 'daijl',
  time:
   { date: 2018-08-06T10:52:07.374Z,
     year: 2018,
     month: '2018-8',
     day: '2018-8-6',
     minute: '2018-8-6 18:52' },
  title: 'dsads',
  post: '<p>大萨达撒</p>' }
GET /u/daijl/2018-8-6/dsads 304 106.436 ms - -
req.params-222222 daijl images qrcode.png
{ name: 'daijl', day: 'images', title: 'qrcode.png' } 'req.params22222222'
{} 'req.query22222222'
find one post query { name: 'daijl', 'time.day': 'images', title: 'qrcode.png' }
连接成功!
find one post null
/Users/apix/Desktop/express-blog/node_modules/mongodb/lib/utils.js:123
    process.nextTick(function() { throw err; });
                                  ^

```  我这个只是查询一条数据啊 ,怎么会出现2个呢
S
souldjl#3·8 年前
引用 hewentaowx我猜你应该有多个get请求 都是类似 /u/:xxx这样的 当你调get请求的时候 你怎么保证你的get请求没走错路由呢 你传的参应该和你的 :name :day 对应 你上面那个肯定是走到其...

@hewentaowx 我大概猜到什么问题了 ,就是这个请求时没有问题的 ,但是这个页面 会再发一次请求,然后他还把parasm的参数给改变了 ,不知道为什么,所以出现这个错误了

S
souldjl#4·8 年前
Z
zhangmingfeng#5·8 年前

从来没有见过这样设置动态路由的。。。

来自酷炫的 CNodeMD

H
hewentaowx#7·8 年前

@souldjl 最简单的办法你弄个前缀不一样的不就行了 都是get方法 你一个/u/daijl 其他的用/u/daijl2 或者其他不就行了

S
souldjl#8·8 年前
引用 zhangmingfeng从来没有见过这样设置动态路由的。。。 来自酷炫的 CNodeMD

@zhangmingfeng 不至于吧,动态路由不都是这个样子吗

Z
zhangmingfeng#9·8 年前
引用 souldjl@zhangmingfeng 不至于吧,动态路由不都是这个样子吗

@souldjl 起码要加上特殊的前缀或者关键字啊,哪有像你这样定义的啊,很容易路由冲突

来自酷炫的 CNodeMD

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