Node.jsとExpress 4でルートを分離する方法とは?
2023-08-25 22:12:08
質問
server.jsファイルからRoutesを分離したいのですが、どうすればよいですか?
Scotch.ioのこのチュートリアルに沿っています。 http://scotch.io/tutorials/javascript/build-a-restful-api-using-node-and-express-4
全ての行がserver.jsファイル上にあれば動作します。しかし、私は分離に失敗しています。どうすれば動作するようになりますか?
サーバ.js
// set up ======================================================================
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
// configuration ===============================================================
app.use(bodyParser());
var port = process.env.PORT || 8000;
var mongoose = require('mongoose');
var database = require('./config/database');
mongoose.connect(database.url);
var Video = require('./app/models/video');
// routes =======================================================================
app.use('/api', require('./app/routes/routes').router);
// listen (start app with node server.js) ======================================
app.listen(port);
console.log("ready captain, on deck" + port);
module.exports = app;
そして、app/routes/routes.jsの
var express = require('express');
var router = express.Router();
router.use(function(req, res, next) {
console.log('Something is happening.');
next();
});
router.get('/', function(req, res) {
res.json({ message: 'hooray! welcome to our rest video api!' });
});
router.route('/videos')
.post(function(req, res) {
var video = new Video();
video.title = req.body.title;
video.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'Video criado!' });
});
})
.get(function(req, res) {
Video.find(function(err, videos) {
if (err)
res.send(err);
res.json(videos);
});
});
module.exports.router = router;
どのように解決するのですか?
メインファイルからルーティングを分離することについては
サーバー.js
//include the routes file
var routes = require('./routes/route');
var users = require('./routes/users');
var someapi = require('./routes/1/someapi');
////////
app.use('/', routes);
app.use('/users', users);
app.use('/1/someapi', someapi);
ルート/ルート.js
//last line - try this
module.exports = router;
また、新しいプロジェクトでは、コマンドラインから試すことができます。
express project_name
そのためには express-generator が必要です。
関連
-
[解決済み] TypeErrorです。リクエストパスにエスケープされていない文字が含まれています。
-
[解決済み] package.jsonのチルダ(~)とキャレット(^)の違いは何ですか?
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsでファイルを書き込む
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.js上のExpress.jsでGET(クエリ文字列)変数を取得する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み] AWS lambda function error - Unable to import module 'index': エラー
-
[解決済み] joiライブラリを使用して2つの時間を比較する方法
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
-
[解決済み] npm install エラー - ローカルの発行者証明書を取得できません。
-
[解決済み] DynamoDBで一括削除するにはどうしたらいいですか?
-
[解決済み] npm not able to find a fileに関連するエラーは何が原因でしょうか?node_modules サブフォルダ内にコンテンツがありません。なぜでしょうか?
-
[解決済み] [Expressで複数のファイルにルートハンドラをインクルードするには?[重複している]。