javascript - エクスプレスポストルートからクライアントに文字列を送り返す

okwaves2024-01-25  13

計算された文字列を、Express のポストルートからクライアントに送り返そうとしています

バックエンドにはポストルートがあります:

router.post('/', async (req, res) => { 
 try {
  // Here I do some computation on a succesion that generates a new string everytime
  const foo = 'string that changes and I want to send to client' 
  
 } catch (error) {
   res.status(500).send(error)
 }
})

次に、クライアント上で axios を使用してデータを送信して投稿します

(async () => {
  try {
    await axios.post('/api/send/', { data })
  } catch (error) {
    console.log(error)
  }
})()

ポストリクエストを送信した後、ポストリクエストが発生したときにそのルートからデータを取得する方法はありますか?

ポストルートから res.send() を使用しようとしましたが、バックエンドの関数が失敗するだけです。

どうもありがとうございます。

res.send() でどのようなエラーが発生しますか?

– リオ A.P

2020 年 9 月 3 日 15:49

基本的には空の文字列を送信し、投稿が作成する関数は機能しません。

– Áルバロ

2020 年 9 月 3 日 15:50

@RapSherlock このシナリオでは、クライアントから文字列をどのようにリクエストしますか?

– Áルバロ

2020 年 9 月 3 日 15:56

ガブリエルの答えと同じように、res.send("your string here") だけ

– リオ A.P

2020 年 9 月 3 日 15:59

申し訳ありませんが、クライアントに送信された後はヘッダーを設定できませんというキャッチに進みます

– Áルバロ

2020 年 9 月 3 日 15:59



------------------------

router.post('/', (req, res) => { 
try {
    // Here I do some computation on a succesion that generates a new string everytime
    const foo = 'string that changes and I want to send to client' 
    res.send(foo);
} catch (error) {
      res.status(500).send(error)
  }
})

これは十分です。そうでない場合は、エラー メッセージの内容を詳しく説明する必要があります。

8

エラーは次のとおりです: ヘッダーをクライアントに送信した後はヘッダーを設定できません

– Áルバロ

2020 年 9 月 3 日 15:58

'rou の使用法をもう一度確認してくださいター'。それが問題の原因ではないかと思います。これは非常に簡単な投稿リクエストであり、問​​題が発生することはありません。

– ガブリエル・レモン

2020 年 9 月 3 日 16:06

実際のポストルートははるかに大きくなりますが、これは単なる単純な例です

– Áルバロ

2020 年 9 月 3 日 16:09

他の POST ルートに問題がありますか?実際のルートは t ですか'/' のパスで問題が発生していますか?

– ガブリエル・レモン

2020 年 9 月 3 日 16:12

1

実際のコードを投稿することをお勧めします。ここにある例は非常に初歩的なもので、見た目からは投稿したものと一致するものは何もありません。 1 回のリクエストで複数回応答することはできません。 (優しい声でこう言います)

– ガブリエル・レモン

2020 年 9 月 3 日 16:20

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。