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

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

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

NestJSは、Node.jsアプリケーションを構築するためのフレームワーク。Typescript製でAngularの影響を強く受けています。Expressで利用できるアーキテクチャをそのまま利用でき、保守が簡単なアプリケーションの構築が可能。開発を容易にするCLIも用意されています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Node.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

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

Q&A

解決済

1回答

1296閲覧

Nest.jsを使用したWEBアプリ開発について

hiroaki_

総合スコア6

NestJS

NestJSは、Node.jsアプリケーションを構築するためのフレームワーク。Typescript製でAngularの影響を強く受けています。Expressで利用できるアーキテクチャをそのまま利用でき、保守が簡単なアプリケーションの構築が可能。開発を容易にするCLIも用意されています。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Node.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

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

0グッド

0クリップ

投稿2022/07/12 08:02

前提

当方Typescriptを学びはじめ、Nest.jsの存在を知り
試しにNest.jsを使用してWEBアプリケーションを作成しようとしています。
かなり初心者です。

実現したいこと

Nest.jsで作成したWEBアプリケーションをherokuにデプロイしたい。

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

Nest.jsがサーバーサイド側のフレームワークということは理解できているのですが、実際にWEBアプリケーションとして使用する際にフロントエンド側とどうやって連携させたら良いのかが全然イメージできておらず。そこの方法を教えていただければと思っております。
当方が考えられたのは、
1,フロント側とバックエンド側をそれぞれHeokuにアップしてフロント側からバックエンド側のAPIを取得する。
2,Nest.js内でhtmlをレンダリングできる?(expressのejsのようなイメージ)
3,フロントエンド側は別のフレームワークで作成(vue.js など)してフォルダをNest.jsで作ったものと合わせてHeokuにアップ。(フォルダが連結できるのか?)
上記の方法で実際作成が可能でしょうか?

また、実際によく行われる手法ややり方があれば教えていただけないでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

NestJSは詳しくないのでざっと調べてきました。
なるほど、これはPHPではよくあるMVCのフレームワークです。
折角TypeScriptで型周りが強くなったんだから、LaravelみたいなのでWebサービス構築したいと言ってるわけですね。

MVCとはなんぞや、MVCは何が便利を他人に説明できない人は触ったらダメなヤツだわこれ。
確かにNode.jsにはないWebフレームワークなので需要はあると感じますが、
元々PHPでCakePHPやLaravelを触ってた人向け。

PHPのCakePHPやLaravelなんかは日本語の情報が多いので良いんですが、
NestJSの日本語の情報は皆無レベルに少ないので、公式サイトのドキュメントを読みながら自力で動かす所まで持っていけない人は触ってはダメです。

そういう意味でもPHPやNode.jsをどちらも中級者レベル以上に使いこなせる
英語もある程度苦にならず公式ドキュメントから情報を引っ張り出す事ができる
そんなそこそこ枯れたおっさんエンジニア向けなのかなと思います。


それでも頑張りたい?

ChromeやFirefoxにはマウスドラッグで文字列をドラッグすると
翻訳してくれる拡張機能が配布されてるので、
そういうのを使うなりして全部読み返しつつ理解してください。

そこまでの雰囲気を掴むならこういう日本語の記事の方が良いかもしれませんね。
しかし記事はどこまで言っても所詮備忘録のメモです。
執筆者が書き残さなきゃいけない所しか書いてないので、全てを知るには全く足りていませんね。
参考記事: Nest.jsは素晴らしい - Qiita


Nest.jsがサーバーサイド側のフレームワークということは理解できているのですが、実際にWEBアプリケーションとして使用する際にフロントエンド側とどうやって連携させたら良いのかが全然イメージできておらず。そこの方法を教えていただければと思っております。

このページを最初から最後まで全部読みましょう。
https://docs.nestjs.com/techniques/mvc

これだけだと辛すぎて泣くと思うのでかいつまんで解説します。

In order to create an MVC app, we also need a template engine to render our HTML views
NestJSを動かすにはHTMLになるテンプレートエンジンが必要です。

$ npm install --save hbs
We've used the hbs (Handlebars) engine, though you can use whatever fits your requirements. Once the installation process is complete, we need to configure the express instance using the following code:
今回はHandlebarsのテンプレートエンジンを採用します。
NestJSはExpressJSをベースとして活用しており、ExpressJSのルールを活用して好きなテンプレートエンジンを採用することが可能です

app.setBaseViewsDir(join(__dirname, '..', 'views'));
app.setViewEngine('hbs');

ExpressJSの設定方法はapp.set('view engine', 'pug')なので詳細は異なりますが、
だいたいExpressJSと同じような指定をするようです。
https://expressjs.com/en/guide/using-template-engines.html

CSSやJavaScript、画像等の静的ファイルはapp.useStaticAssets(join(__dirname, '..', 'public'));を用意してるからそれで勝手にやれという感じのようです。
Webpack等を別途用意して望んだ方が良いでしょう。

投稿2022/07/14 12:08

miyabi-sun

総合スコア21203

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

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

hiroaki_

2022/07/20 07:45

丁寧な説明ありがとうございます!なかなか簡単に導入できるようなものではない気がしてきました。。。まだNode.jsをそこまで使いこなせるレベルではないので、まずそこから経験を積んでいこうかと思います! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問