にページをレンダリング:app.use( '/ API')場合にのみ、私は次のようしているエクスプレス4
app.js
...
var api = require('./routes/api');
app.use('/', api);
app.use('/api', api);
./routes/api
を...
var router = express.Router();
router.get('/', passport.authenticate('bearer', { session: false }), function (req, res) {
res.json({
msg: 'API is running'
});
});
/
と/api
ルートを区別するにはどうすればいいですか?012になったらページをレンダリングすることができますと私は/api
にいる場合JSONだけを返しますか?
私は非APIルートにjsonレスポンスをレンダリングするための関数を渡すことを考えていました。また、apiルートに別の関数がjsonレスポンスを表示するように考えていましたか?
これを行う方法は他にもありますか、それとも私はそれをやめようとしていますか?
ありがとうございます。あなたは同じルートファイル上で2つのパスをマウントしているのはなぜ
あなたは[req.baseUrl](http://expressjs.com/de/api.html#req.baseUrl)を探していますが、これは使用しません。 '/ api/resource/id.json'と'/api/resource/id.xml'のレスポンス・タイプの違いに接尾辞を使用しない理由がありますか、タイプを決定するヘッダーを受け入れますか? –
受け入れヘッダを見て、https://github.com/expressjs/express/blob/master/examples/error-pages/index.js#L65だから私は 'if(req.accepts( 'html'))を使うことができました。 {'私の'/'ルートのために' '/ api'の' '(req.accepts( 'json')){' – Sanction
リクエストはしばしばその形式であるため、req.accepts(['json'、 'html']) 'ansは返される内容を確認する必要があります。Accept:application/json、*/*; q =あなたの最初の 'req.accepts( 'html')'も '*/*; q = 0.1'のために一致します。 –