2017-01-27 3 views
1

Wie kommt das funktioniert:app.get arbeitet, tut app.use nicht

app.get(/\/new\/(.*)/, function (req, res) { 

    console.log(req.params[0]); 
    res.json({site: req.params[0]}); 

}); 

aber der gleiche Code nicht, wenn ich app.use() verwenden.

const app = require("express")(); 
const error = require("./routes/error"); 

app.use(/\/new\/(.*)/,error); 

error.js

const express = require("express"); 
const router = express.Router(); 


router.get("/",function(req,res){ 
    console.log(req.params[0]) 
    res.json({site:req.params[0]}) 
}); 




module.exports = router; 

Es protokolliert nur in diesem Fall an die Konsole nicht definiert, aber im ersten Fall gibt es alles nach der "neuen" Route eingegeben hat.

Antwort

3

Wenn Sie dasselbe mit app.use() implementieren möchten, müssen Sie Ihren Code geringfügig ändern. Führen Sie die folgenden Änderungen:

In app.js:

app.use('/new',error); 

und in error.js,

router.get(/(.*)/,function(req,res){ 
    console.log(req.params[0]) 
    res.json({site:req.params[0]}) 
}); 

die Sie interessieren und lassen Sie mich wissen

+0

@JohnNoob Lassen Sie mich wissen, ob dies hat für dich gearbeitet. Und lesen Sie mehr über app.use() und app.get(), um die Verwendung von beiden zu verstehen –

+0

Vielen Dank Kumpel .. Nach diesem Projekt habe ich vor, tief auf sie zu graben! : D – JohnSnow

+0

Gute Arbeit @ PankajkumarPanigrahi – Deep

Verwandte Themen