result.json не является функцией

#javascript #node.js

#javascript #node.js

Вопрос:

Я написал несколько Node.js код для моего приложения для социальных сетей, и я столкнулся с ошибкой в моем коде:

 app.post('/unfriend', function (request, result) {

    var accessToken = request.fields.accessToken;
    var _id = request.fields._id;

    database.collection("users").findOne({
        "accessToken": accessToken
    }, function (error, user) {
        if (user == null) {
            result.json({
                "status": "error",
                "message": "User has been logged out. Please login again."
            });
        } else {
            var me = user;
            database.collection("users").findOne({
                "_id": ObjectId(_id)
            }, function (error, result) {
                if (user == null) {
                    result.json({
                        "status": "error",
                        "message": "User do not exist."
                    });
                } else {

                    database.collection("users").updateOne({
                        "_id": ObjectId(_id)
                    }, {
                        $pull: {
                            "friends": {
                                "_id": me._id
                            }
                        }
                    }, function (error, data) {

                        database.collection("users").updateOne({
                            "_id": me._id
                        }, {
                            $pull: {
                                "friends": {
                                    "_id": user._id
                                }
                            }
                        }, function (error, data) {
                            result.json({
                                "status": "success",
                                "message": "Friend has been removed."
                            });
                        });
                    });
                }
            });
        }
    });
});
 

`
Мой терминал показывает:

result.json не является функцией.

Комментарии:

1. Примечание: второй параметр функции промежуточного программного обеспечения Express не является «результатом», это Response объект .

Ответ №1:

Я думаю, что вы переопределили (затенили) свою result переменную в этом database.collection("users").findOne обратном вызове:

 function (error, result) {
 if (user == null) {
   result.json({
     "status": "error",
     "message": "User do not exist."
   });
 }
}
 

Простое использование другого имени переменной должно исправить это. например:

 function (error, data) {
 if (user == null) {
   result.json({
     "status": "error",
     "message": "User do not exist."
   });
 }
}