質問: rawImg.toString('base64'); return encImg ```
回答: getImage(url) を同期関数にしたいのでしょうか、それとも非同期関数にしたいのでしょうか。 という質問の意味がもしわからないとしたら、Node.js の基本的な仕組みを理解していないものと思われますので、その勉強が必要だと思います。 現在のコードのまま `getImage(url)` が呼ばれるとどうなるか、を説明すると、`headers` が初期化され、`options` が初期化され、`request()` が呼ばれて HTTP リクエストが飛んで `request()` から戻ってきます。で、`getImage()` が終了します。ここに明示的な `return` がないので、暗黙的な `return` が実行されます。 で、HTTP のレスポンスが返ってくると、`request()` の第 2 引数に指定したコールバック関数が呼ばれます。このコールバック関数の中で `encImg` を返していますが、受け取る人はいません。 `getImage()` を呼び出した側で結果を得られるようにするには、`getImage()` を「同期化する」か、「非同期のまま動くよう、コールバック関数を引数に取るようにする」かします。推奨されるのは後者でしょうね。 最初に言った、Node.js の基本的な仕組みを理解していない場合、ここで解決策の具体的なコードを示しても意味がないでしょう。