私は自分自身のサイド プロジェクトに取り組んでおり、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/統計)。
また、データベースにある他の 2 つのコレクションはエラーを返さないため、urls コレクションのみの問題のようです。
nodejsが他のデータを見つけている場所を説明するために間違ったdb/collectionを使用している可能性について誰かがコメントする前に(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