2016年1月3日日曜日

node expressのURLのハンドリング

nodeのexpressでURLのpathnameによって、動作させるプログラムを紐つける方法についてのメモです。
(*URLは開発環境での場合です。)

次のURL2つをそれぞれ、別のプログラムを動作させます。

1)http://localhost:3000/
2)http://localhost:3000/test

app.jsのapp.use関数の第1引数にpathnameを設定します。
そして、第2引数は、動作させるプログラムを設定します。

1)の場合は、app.use('/', routes);
2)の場合は、app.use('/test', test);

動作させるプログラムの、router.getの第1引数は'/'を設定します。
2)の場合も、'/'を設定します。'/test'を設定してはダメです。
'/test'を設定して、動作させるとHTTPステータス404(Not Found)になります。

2)を動作させるために、関連する箇所のプログラムは以下になります。

app.jsの先頭部分

  1. var express = require('express');
  2. var path = require('path');
  3. var favicon = require('serve-favicon');
  4. var logger = require('morgan');
  5. var cookieParser = require('cookie-parser');
  6. var bodyParser = require('body-parser');
  7.  
  8. var app = express();
  9.  
  10. // ECT view engine setup
  11. var ECT = require('ect');
  12. var ectRenderer = ECT({ watch: true, root: __dirname + '/views', ext: '.ect'});
  13. app.set('views', path.join(__dirname, 'views'));
  14. app.set('view engine', 'ect');
  15. app.engine('ect', ectRenderer.render);
  16.  
  17. // routes setup
  18. var routes = require('./routes/index');
  19. var test = require('./routes/test');
  20.  
  21. app.use('/', routes);
  22. app.use('/test', test);


test.jsの内容

  1. var express = require('express');
  2. var router = express.Router();
  3.  
  4. /* GET home page. */
  5. router.get('/', function(req, res, next) {
  6.     res.render('test');
  7. });
  8.  
  9. module.exports = router;


0 件のコメント :

コメントを投稿