2016-04-30 10 views
1

基本的に私のコードはmywebsite.com/usernameに行くことができ、それらを自分のプロフィールに持っていきたいです。どうすればノードエクスプレスでルータを使用できますか?ワイルドカードとparamsはまだありますか?

マイapp.jsが持っている - 私のuser.jsの中

var user = require('./routes/user'); 
app.use('/*', user); 

、その後、私はrouter.getを変更した場合、私は

router.get('/:username', function(req, res) { 
    console.log('the user name', req.params.username); 
}) 

を持っているだけでrouter.get( '/')私のconsole.logは未定義でログアウトし、私がrouter.get( '/:username')として残した場合、私は404を取得します。私もapp.use( '/:username'、user)をやってみましたが、仕事はありません。

+1

このようにアクセスしたい場合:mywebsite.com/username次に、単にapp.use( '/'、router)を使用します。 '/ *'を使用する必要はありません –

+0

また、「/」を含める必要もないことに注意してください。 – kevingilbert100

+0

私はapp.use( '/'、index)を実行します。ページではなく、ユーザーページ.. – joe

答えて

0

あなたはこのような何かを試してみてくださいapp.use

上で行うようにワイルドカードを持っている必要がありshould't。

また更新http://expressjs.com/en/guide/routing.html

// Required Moduiles 
var express = require('express'); 
var router = express.Router(); 
var app = express(); 


// Add route to get 
router.get('/:username', function(req, res) { 
    res.status(200).send(req.params.username) 
}) 

// Add username 
app.use('/', router) 


// Start express server 
app.listen(3030); 

特急ルータのマニュアルを参照してください - すべてのあなたのルートはあなたがこの新しいルータインスタンス/ミドルウェアに含まれる予定がある場合だけapp.use(router)を使用して同じことをするだろう

別のファイルで作成します。

+0

上記のコードは動作しません。 req.params.usernameをundefinedとして返します。 – joe

関連する問題