Как мне ждать ответа от ExpressJs на запрос iOS? - PullRequest
0 голосов
/ 05 июня 2019

У меня есть сервер, на котором запущены ExpressJs, и это моя функция:

var db = require('./db');
app.get('/findPlace', (request, response) => {

var placeName = request.query.name;
db.FindPlace(placeName).then(function(items){

    console.info('The promose was fullfilled with items!', items);
    response.json(items);
}, function(err){
    console.error('The promise was rejected',err,err.stack);
});

});

Где db.js

module.exports = {
FindPlace: function(placeName)
{
    return mongodb.connect(uri, { useNewUrlParser: true }).then(function(client){
    var db = client.db('social-capital');
    var places = db.collection("Places");
    return places.find({"name":{ $eq: placeName}}).toArray();
    }).then(function(items){

        return items;
    });
}
};

Я пытаюсь вернуть массив JSON в мое приложение iOS, но он продолжает возвращать ноль, потому что вызов iOS не ждет выполнения обещания.Это метод iOS, у меня есть запрос:

guard var checkedInURL = URLComponents(string: Constants.BASE_URL + Constants.FIND_PLACES) else { return }
    let queryTiems = URLQueryItem(name: "name", value: placeName)
    checkedInURL.queryItems = [queryTiems]
    checkedInURL.percentEncodedQuery = checkedInURL.percentEncodedQuery?.replacingOccurrences(of: "+", with: "%2B")
    guard let finalUrl = checkedInURL.url else { return }
    var request = URLRequest(url: finalUrl)
    request.httpMethod = "GET"


    URLSession.shared.dataTask(with: request) { (data, response, error) -> Void in
        print("IN METHOD")
        guard let data = data,                            // is there data
            let response = response as? HTTPURLResponse,  // is there HTTP response
            (200 ..< 300) ~= response.statusCode,         // is statusCode 2XX
            error == nil else {                           // was there no error, otherwise ...
                return
        }
        let responseObject = (try? JSONSerialization.jsonObject(with: data)) as? [String: Any]
        print(responseObject)

        }.resume()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...