質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

688閲覧

node.jsでフロントにAPIを返す

big_sky

総合スコア23

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2020/11/02 12:53

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Node.js(typescript)でAPIを作成しており、フロントに
results = {
count: 100,
values: hoge
}
のような形で返したいのですが、countが配列になってしまいます。
配列ではなく数字をそのまま入れて返したいのですが、どのようにしればいいでしょうか?
countにはuser数が入り、valueはそのユーザー情報が一人づつ入っっています。

発生している問題

RowDataPacketになり配列になってしまう

該当のソースコード

async getUser(hoge: hoge) { const results = { count: await this.query<{totalt: number[]}>( "SELECT COUNT(*) AS total FROM hoge", ), values: await hoge, }; return results; }

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下でいけるのではないでしょうか。

async getUser(hoge: hoge) { const results = { count: (await this.query<{totalt: number[]}>( "SELECT COUNT(*) AS total FROM hoge", ))[0], values: await hoge, }; return results; }

COUNT(*) なので必ず1行が返るという前提です。
きれいに書くのなら、this.queryの戻りを一度変数にとって処理すべきだと思います。

投稿2020/11/02 13:12

quzq

総合スコア185

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

big_sky

2020/11/02 13:28

ありがとうございます。 以下のエラーが出ました。 型 '0' の式を使用して型 '{ total: number[]; }' にインデックスを付けることはできないため、要素は暗黙的に 'any' 型になります。 プロパティ '0' は型 '{ total: number[]; }' に存在しません。
big_sky

2020/11/02 13:35 編集

変数に入れ、 const count = (await this.query<{total: number[]}>( "SELECT COUNT(*) AS total FROM hoge", ))[0]または()[0}なし; const results = { count: countまたはcount[0], values: await hoge, }; の様な形も試しました。
big_sky

2020/11/02 16:26

一度型がanyの変数に入れて対応しればいけました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問