express.Router()の使用に問題があり、私の問題が何であるか分かりません。私の問題は、url '/ api/zip'や '/ api/zip /' + zipにGETリクエストをすると、zipは数字の郵便番号で、唯一のルートは '/'です。以下の例では、 '$$$$$$$$$$$'を記録します。複数のURLとオプションのパラメータを持つexpress.Router()の使用
results_api.jsの '/'のルートを削除すると、 'made to it to server.js'がログに記録されますが、results_api.jsからは何も取得されません。より多くのコンテキストコードを掲載する必要があるかどうかを教えてください。 Angularフロントエンドを使用していますが、リクエストが常にserver.js(「server.jsをログに記録」されていることが確認されている)に到達してから、私の問題はresults_api.js内にあると仮定しています。
私は以前にこのルーティング方法を使用していましたが、今回は何がうまくいかないのか分かりません。どのように私はroutes.getを打つために管理します( '/ ZIP /:ファスナー...私のserver.jsファイルで
:?
var express = require('express');
var routes = express.Router();
//route to index.html
var assetFolder = Path.resolve(__dirname, '../client/');
routes.use(express.static(assetFolder));
//api routes
routes.use('/api/*', require(‘./api/results_api.js’), function(){
console.log('made it to server.js')});
マイresults_api.jsファイル:
var router = require('express').Router();
router.get('/', function(req, res){
console.log('$$$$$$$$$$$$$$$')
});
router.get('/zip', function(req, res){
console.log(‘###################’)
});
router.get('/zip/:zip', function(req, res){
console.log('%%%%%%%%%%%%%%%%%')
});
module.exports = router;
この質問:
express.Router() get url route with optional parameters
は私に近いですが、私の場合には中間パラメータが(「ありません/ zip/'after'/api ')。これは、私のapiを構築するために間違ったやり方であることをやろうとしていることを示していますか?
私は実際にそれを試しましたが、 '/'はまだ使用されるハンドラです。 '/'ハンドラのログreq.baseUrlをコンソール化すると、 '/ api/zip/78728'を取得するので、URLが正しく構築されていることがわかります。 – swoopedj
これをテストする機会があった後、答えを更新しました:/ – panta82
それでした!ありがとうございました、私は実際に前にうまくいきませんでしたが、ハンドラが正しくセットアップされておらず、その時点でハンドラが問題であると確信していました。 – swoopedj