我正在为自己做一个辅助项目,在我的 URL Shortener 中,我在我们的统计页面(例如:http: //xd6.co/u/ah/stats)上收到一个错误,这似乎只在创建链接后才出现一些时间/累积点击次数,然后它会收到以下错误消息:
ReferenceError: startsWithDigit is not defined
at Object.eval [as toVersionString] (eval at makeFunction (/home/xd6/node_modules/mongolian/node_modules/buffalo/lib/bson.js:380:17))
at Object.eval [as toString] (eval at makeFunction (/home/xd6/node_modules/mongolian/node_modules/buffalo/lib/bson.js:380:17))
at String (unknown source)
at Writer._name (/home/xd6/node_modules/mustache/mustache.js:292:35)
at Writer._escaped (/home/xd6/node_modules/mustache/mustache.js:296:32)
at renderFunction (/home/xd6/node_modules/mustache/mustache.js:357:28)
at subRenders.(anonymous function) (/home/xd6/node_modules/mustache/mustache.js:328:18)
at Writer._section (/home/xd6/node_modules/mustache/mustache.js:240:21)
at renderFunction (/home/xd6/node_modules/mustache/mustache.js:345:28)
at Writer._compile.cache.(anonymous function) (/home/xd6/node_modules/mustache/mustache.js:224:16)
at Writer.render (/home/xd6/node_modules/mustache/mustache.js:204:34)
at Object.exports.render (/home/xd6/node_modules/mustache/mustache.js:596:20)
当我在控制台中运行 mongo 并db.urls.find()
得到以下响应时:
{ "short" : "aa", "long" : "http://xd6.co/Projects/url-shortener", "created" : "2013-01-03 7:11 UTC", "clicks" : 0, "visitors" : [ ], "subscribers" : [ ], "_id" : ObjectId("50e52f2b000000d358000002") }
{ "short" : "ab", "long" : "http://google.com", "created" : "2013-01-06 1:17 UTC", "clicks" : 0, "visitors" : [ ], "subscribers" : [ ], "_id" : ObjectId("50e8d0c2000000d358000003") }
{ "short" : "ac", "long" : "http://xd6.co/u/", "created" : "2013-01-07 5:54 UTC", "clicks" : 0, "visitors" : [ ], "subscribers" : [ ], "_id" : ObjectId("50ea6332000000435b000002") }
ReferenceError: startsWithDigit is not defined
这表明这是一个 mongo 错误,而不是我们的代码中的错误。此外,控制台中的 Mongo 给出的结果与 nodejs 程序本身不同。它甚至没有显示所有确实存在的现有文档,例如“ae”在 mongo 控制台输出中不存在,但 nodejs 显然正在为它的某个地方找到数据(http://xd6.co/u/api/ AE/统计)。
这似乎也只是 urls 集合的问题,因为我们在数据库中拥有的其他两个集合不返回错误。
在有人评论可能使用错误的 db/collection 来解释 nodejs 在哪里找到其他数据(使用 XD6 DB 和 urls 集合)之前:
> show dbs
XD6 0.0625GB
local (empty)
test (empty)
> use XD6
switched to db XD6
> show collections
pages
posts
system.indexes
urls