0
私はNodeJSでアカウントを更新しました。私はそれをクライアント側で必要とするため、私に新しい更新値を返します。それはキー値のjOkで未定義のログをログします。私は間違って何をしているのですか?デシベルでMongoDb updateOne()の結果は未定義です
user.updateAccount = (jUserData, fCallback) => {
var jUser = {
userName: jUserData.txtEditAccountEmailorPhoneNumber,
firstName: jUserData.txtEditAccountName,
lastName: jUserData.txtEditAccountLastName,
password: jUserData.txtEditAccountPassword,
image: global.sUpdateUserImagePath
}
var userObjectId = global.mongoId(jUserData.txtEditAccountId)
global.db.collection('users').updateOne({ "_id": userObjectId }, { $set: jUser }, (err, jResult) => {
if (err) {
var jError = { "status": "error", "message": "ERROR -> updateAccount -> user.js -> 001" }
return fCallback(false, jError)
}
var jUserId = jResult._id
var jNewUserRole = jResult.userRole
var jNewUserName = jResult.userName
var jNewUserFirstName = jResult.firstName
var jNewUserLastName = jResult.lastName
var jNewUserImage = jResult.image
var jOk = {
"status": "ok",
"message": "user.js -> account updated -> 000",
_id: jUserId,
userRole: jNewUserRole,
userName: jNewUserName,
firstName: jNewUserFirstName,
lastName: jNewUserLastName,
image: jNewUserImage,
}
return fCallback(false, jOk)
})
}
マイユーザーtable's文書構造:findOneAndUpdateと
{
"_id" : ObjectId("5a1a627f942bca5149ab3f25"),
"userRole" : "admin",
"userName" : "[email protected]",
"firstName" : "B",
"lastName" : "B",
"password" : "2",
"image" : "public/img_webshop/fileUserImage-1511710009148.png"
}
更新()、私はreturnNewDocumentを追加しました:真。まだ定義されていません。私は間違って何をしていますか?あなたが更新されたオブジェクトは、その後findOneAndUpdateを(使う必要がある場合は、デフォルトのUpdateOneによって
user.updateAccount = (jUserData, fCallback) => {
var jUser = {
userName: jUserData.txtEditAccountEmailorPhoneNumber,
firstName: jUserData.txtEditAccountName,
lastName: jUserData.txtEditAccountLastName,
password: jUserData.txtEditAccountPassword,
image: global.sUpdateUserImagePath
}
var userObjectId = global.mongoId(jUserData.txtEditAccountId)
global.db.collection('users').findOneAndUpdate({ "_id": userObjectId }, { $set: jUser }, { returnNewDocument: true }, (err, jResult) => {
if (err) {
var jError = { "status": "error", "message": "ERROR -> updateAccount -> user.js -> 001" }
return fCallback(false, jError)
}
var jUserId = jResult._id
var jNewUserRole = jResult.userRole
var jNewUserName = jResult.userName
var jNewUserFirstName = jResult.firstName
var jNewUserLastName = jResult.lastName
var jNewUserImage = jResult.image
var jOk = {
"status": "ok",
"message": "user.js -> account updated -> 000",
_id: jUserId,
userRole: jNewUserRole,
userName: jNewUserName,
firstName: jNewUserFirstName,
lastName: jNewUserLastName,
image: jNewUserImage,
}
return fCallback(false, jOk)
})
}
私はちょうど私がreturnNewDocumentを追加findOneAndUpdate()で更新をした)更新された項目を返さない:真。まだ定義されていません。私は間違って何をしていますか? – codeDragon
returnNewDocumentをreturnOriginalに変更し、falseに設定します。https://stackoverflow.com/a/35627439/5239892 – kingdynastyk
はまだ未定義を返します。( – codeDragon