У меня есть простой Node.js сервер, на котором я пытаюсь использовать Node.js пакет с именем image -ходимость , в соответствии с его do c он используется так:
let imageSimilarity = require ('image-similarity') ;
imageSimilarity('./image/1.jpg', './image/2.jpg').then ( res => {
console.log(res) ; // The similarity is 0.8162515507509954
} ) ;
Это нормально работает, но я пытаюсь использовать его на сервере HTTP Node.js, например:
var http = require('http');
var imageSimilarity = require('image-similarity');
http.createServer(function handler(req, res) {
res.writeHead(200, {'Content-Type' : 'text/plain'});
var result = "";
imageSimilarity('./images/1.png', './images/2.png').then(res => {
result = res;
});
res.end(result);
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
Мне просто нужно добавить результат в ответ , но я обнаружил, что не могу получить доступ к переменной res
из тогдашнего function
, и я не могу просто присвоить результат переменной, как в предыдущем примере, так как этот блок выполняется асинхронно, он просто будет пустым, когда я попытаюсь использовать его снаружи.