4

Node.JS + Mongoose + MongoDB を使用しています。ドキュメントを保存しようとすると、今までアプリが正常に動作していました。

保存操作:

doc.save(function(err, d){
    console.log(err,d); 

{"名前":"MongoError","メッセージ":"EPIPE の書き込み"}

エラー スタック:

{ [MongoError: server localhost:27017 received an error {"name":"MongoError","message":"write EPIPE"}]
  name: 'MongoError',
  message: 'server localhost:27017 received an error {"name":"MongoError","message":"write EPIPE"}' } undefined
error: TypeError: Cannot read property 'url' of undefined
    at EventEmitter.<anonymous> (/home/ec2-user/c/index.js:160:61)
    at EventEmitter.<anonymous> (/home/ec2-user/c/node_modules/mongoose/node_modules/mpromise/lib/promise.js:174:48)
    at EventEmitter.emit (events.js:95:17)
    at Promise.safeEmit (/home/ec2-user/c/node_modules/mongoose/node_modules/mpromise/lib/promise.js:81:21)
    at Promise.reject (/home/ec2-user/c/node_modules/mongoose/node_modules/mpromise/lib/promise.js:109:15)
    at Promise.error (/home/ec2-user/c/node_modules/mongoose/lib/promise.js:94:15)
    at Promise.resolve (/home/ec2-user/c/node_modules/mongoose/lib/promise.js:112:24)
    at /home/ec2-user/c/node_modules/mongoose/lib/document.js:1555:39
    at handleError (/home/ec2-user/c/node_modules/mongoose/node_modules/hooks-fixed/hooks.js:40:22)
    at next_ (/home/ec2-user/c/node_modules/mongoose/node_modules/hooks-fixed/hooks.js:75:26)

データを読み取ることはできるようですが、新しいドキュメントを書き込むことはできません。Mongo はアプリで実行中です。これまでのところ、DBを再起動してみましたが、良い結果は得られませんでした。

モンゴクライアントから挿入しようとしたところ、うまくいきました

> db.mysecretcollection.insert({url:"sampletestremoveme"});
WriteResult({ "nInserted" : 1 })

したがって、Node.js / Mongoose の問題のようです。

4

1 に答える 1

2

ドキュメントが大きすぎるように思えますが、実際にはフィールドの 1 つを削除して保存することができました。奇妙なことに、マングースは「エラー: ドキュメントが最大許容 bson サイズの XXX バイトを超えています」という例外でそれをキャッチする必要がありますが、それは決してスローされませんでした。

于 2015-05-14T21:41:56.000 に答える