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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

TypeScript

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

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

1回答

319閲覧

typescript,expressでの簡単なサーバーへのリクエストテストでのエラー

nojob

総合スコア1

Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

TypeScript

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

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2023/07/23 05:37

実現したいこと

■クライアントサイド(ionic/angular)
「GETリクエストを送信」をボタンを押すと、サーバーにGetリクエストがされ、サーバーから「hello world」というレスポンスを受け取る。

■サーバーサイド(express)
クライアントサイドからのGetリクエストに、「hello world」というレスポンスを行う。

前提

ここに質問の内容を詳しく書いてください。
(例)

■質問

TypeScriptで簡単なサーバー応答確認プログラムを作っています。
その際エラーが出てしまいました。原因を教えてください。
クライアントサイドのURLや、サーバーサイドのエンドポイントの設定がおかしいのでしょうか?

発生している問題・エラーメッセージ

■エラーメッセージ

GET http://localhost:3000/api/hello 404 (Not Found) sendGetRequest @ home.page.ts:32 HomePage_Template_ion_button_click_5_listener @ home.page.html:11 Zone - HostElement.addEventListener:click (async) HomePage_Template @ home.page.html:11 Zone - Promise.then (async) (anonymous)

該当のソースコード

■クライアントサイド ●home.page.ts: @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage { user: any; errorMessage: string = ''; audioFile: any; imageFile: any; videoFile: any; response: string = ''; constructor(private afAuth: AngularFireAuth, private router: Router , private http: HttpClient) { this.afAuth.authState.subscribe((user) => { if (user) { this.user = user; } else { this.router.navigate(['/login']); } }); } // postリクエストのテスト用 sendGetRequest() { this.http.get<any>('http://localhost:3000/api/hello').subscribe( (data) => { this.response = data; }, (error) => { console.error('GETリクエストが失敗しました。', error); } ); } ■サーバーサイド

●app.ts:
import express from 'express';
import bodyParser from 'body-parser';
import cors from 'cors';
import multer from 'multer';
import mediaRoutes from './routes/media.routes';
import helloRoutes from './routes/hello.routes';

const app = express();
const PORT = process.env.PORT || 3000;

// multerの設定
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, 'uploads/');
},
filename: (req, file, cb) => {
cb(null, file.originalname);
},
});

const upload = multer({ storage });

app.use(bodyParser.json());
app.use(cors());
app.use(upload.fields([{ name: 'audio', maxCount: 1 }, { name: 'image', maxCount: 1 }]));

// エンドポイントのルーティング
app.use('/api/media/createVideo', mediaRoutes);
app.use('/api/hello', helloRoutes);

app.listen(PORT, () => {
console.log(Server is running on port ${PORT});
});

●hello.routes.ts:
import express, { Router, Request, Response } from 'express';

const router: Router = express.Router();

console.log("hello.routes.tsが呼び出されました")

// "hello world"をクライアントに返すエンドポイント(POSTリクエスト)
router.get('/hello', (req: Request, res: Response) => {
console.log("hello worldを返します")
res.send('hello world');
});

export default router;

試したこと

クライアントサイド、サーバーサイド共にport-3000で起動しております。

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

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

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

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

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

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

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

guest

回答1

0

自己解決

クライアントサイドをport-4200で起動したらできました

投稿2023/07/23 07:37

nojob

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問