CNode

神奇:之前写好的许多接口返回了一些无关的数据

问答
JJarvisQJ发布于10 年前最后回复10 年前25 回复5837 浏览0 收藏

untitled1.png 红线之前是正常内容,之后是数据库里其他内容,本接口根本没有指定返回这些

查看回复

回复 (25)

N
nnliang#1·10 年前

看一下你的查询字段规定了没有,可能是之前后面这些参数没有值,现在有值了就可以查出来了

.find({查询条件},{查询字段})
J
JarvisQJ#2·10 年前
引用 nnliang看一下你的查询字段规定了没有,可能是之前后面这些参数没有值,现在有值了就可以查出来了

@nnliang 红线后面的数据不是指定返回的,之前的都是指定的。这是个神奇的bug,神奇之处就在于,我根本没让它返回,应该所有开发人员都懂的

L
liujavamail#3·10 年前

有没有用过第三方的一些orm,或者elasticsearch之类的,有的默认的给你返回了一个model 之类的

D
doerU#5·10 年前

感觉还是要仔细审查代码,一步步跟进 多找找自身原因。

J
JarvisQJ#6·10 年前
引用 nnliang@qujinxiong 方便的话可以贴出来你指定查询的代码片段么

@nnliang 真没必要贴代码,因为许多接口都是有这个。这些接口都是之前开发好没有任何问题的。突然就莫名其妙的,多了这后面这一堆。

J
JarvisQJ#8·10 年前
引用 doerU感觉还是要仔细审查代码,一步步跟进 多找找自身原因。

@doerU 你知道,有些bug会让你怀疑一切

D
dbit-xia#9·10 年前

除非你更新了什么东西

来自酷炫的 CNodeMD

A
airyland#10·10 年前

我想问,你是不是用了框架,比如thinkjs? 它的success ,fail 方法会自动输出这些参数的。

F
fengliner#11·10 年前

仔细排查一下,有些bug也会让你意想不到

Q
qimenxiaozi#12·10 年前

npm惹的鬼吧,仔细排查npm 相关的module吧 From Noder

J
JarvisQJ#13·10 年前
引用 dbit-xia除非你更新了什么东西 来自酷炫的 CNodeMD

@dbit-xia 因为是多个人开发的,没有人知道为什么。我只希望有人遇到过这种情况

J
JarvisQJ#14·10 年前
引用 airyland我想问,你是不是用了框架,比如thinkjs? 它的success ,fail 方法会自动输出这些参数的。

@airyland 应该不是这种情况,因为返回的数据是我数据库中的一个集合里面的

Q
qingmingsang#15·10 年前

orm?

S
Sirormy#16·10 年前

经验告诉我,从来都没有什么神奇的事情,肯定是哪个糊涂蛋写错了

J
JarvisQJ#17·10 年前
引用 zbinlin@qujinxiong 是不是在 combineJson 里用了 Object.assign?把 combineJson 里的代码贴出来看下

@zbinlin exports.combineJson = function (origin, target) { for (var p in origin) { target[p] = origin[p]; } return target; };

Z
zbinlin#18·10 年前
引用 JarvisQJ@zbinlin exports.combineJson = function (origin, target) { for (var p in origin) { target[p] = o...

@qujinxiong 你这样写太危险了,如果 origin 原型链上有数据,很容易把原型链上的数据赋值给 target。

M
mabu233#19·10 年前

你用 这个试试 function (origin, target) { var result = {}; for (var p in origin) { result[p] = origin[p]; } for (var p in target) { result[p] = target[p]; } return result; };

1
13241491189#20·10 年前

程序是不会骗人的! CTO经常说的一句话

J
JarvisQJ#21·10 年前

res.render("channelHomepage",utils.combineJson(errors.e0,channel[0])); 最终解决方式:上面的errors.e0和channel[0]如果互换了位置就会出现之前的bug。combineJson是我写的一个拼接json的工具方法。虽然没有找到根本原因,但我觉得这应该算mongoose或者mongodb的一个bug。因为上面的代码执行过一次后,其返回的内容会被加入到所有其他接口返回的结果中

J
JarvisQJ#22·10 年前

虽说utils.combineJson是我自己写的工具方法,但它的功能仅仅是拼接json而已。

Z
zbinlin#23·10 年前
引用 JarvisQJ虽说utils.combineJson是我自己写的工具方法,但它的功能仅仅是拼接json而已。

@qujinxiong 是不是在 combineJson 里用了 Object.assign?把 combineJson 里的代码贴出来看下

J
JarvisQJ#25·10 年前
参与回复
登录后即可参与回复。登录