NodeJs - Mongoose, похоже, не передает никакого запроса в мой код, однако я эффективно определил запрос, который должен быть выполнен

Этот вопрос и ответы дали мне направление в правильном направлении. Специально с unicode atob и btoa нельзя использовать «ваниль», и в эти дни все равно unicode ..

Непосредственно из Mozilla две хорошие функции для этой цели (протестированы с помощью юникода и html-тегов внутри)

function b64EncodeUnicode(str) {
    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
        return String.fromCharCode('0x' + p1);
    }));
}

b64EncodeUnicode('✓ à la mode'); // "4pyTIMOgIGxhIG1vZGU="
b64EncodeUnicode('\n'); // "Cg=="



function b64DecodeUnicode(str) {
    return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) {
        return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
    }).join(''));
}

b64DecodeUnicode('4pyTIMOgIGxhIG1vZGU='); // "✓ à la mode"
b64DecodeUnicode('Cg=='); // "\n"

Эти функции будут выполнять молниеносно по сравнению с необработанным декодированием base64, используя пользовательскую функцию javascript, поскольку btoa и atob выполняются вне интерпретатора.

Если вы можете игнорировать старый IE и старый мобильный телефоны (например, iphone 3?) это должно быть хорошим решением.

0
задан Webwoman 6 March 2019 в 16:21
поделиться

1 ответ

Измените server.js на:

var scannedIp = 12.34.56.78;
var chatScan = Chat.find({ ip: scannedIp }, function (err, docs) {
        if(err) return console.log(err)
        console.log(docs.length)
})

КСТАТИ , метод find является обещанием, поэтому, если вы хотите console.log, его результаты выходят за пределы обратного вызова, тогда вам нужно сделать что-то вроде этого:

chatScan.then(docs => {
  console.log(docs)
})
0
ответ дан Avraham 6 March 2019 в 16:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: