2016-09-29 3 views
0

마이크로 서비스 모음을 만들려고합니다. 문제는 내 경로가 올바른 위치로 리디렉션되지 않는 것입니다. 여기 ExpressJS 라우팅 오류

내하는 index.js 파일입니다

var express = require("express"); 
var app = express(); 
var port = process.env.PORT || 3000; 
var timestamp = require("./routes/timestamp"); 

app.listen(port, function(){ 
    console.log("Listening on port " + port); 
}); 

app.get("/", function(req, res){ 
    res.writeHead(200, {"Content-Type": "text/html"}); 
    res.end("Hi! This is a collection of microservices. <a href='https://github.com/Humad/timestamp-microservice'>See instructions here.</a>"); 
}); 

app.get("/timestamp", timestamp); 

그리고 여기 내 '타임 스탬프'파일입니다

여기
var express = require('express'); 
var router = express.Router(); 
var moment = require("moment"); 

router.get("/", function(req, res){ 
    res.send("Hello world!"); 
}); 

router.get("/:date", function(req, res){ 
    var newDate = req.params.date; 

    var natural = moment.utc(newDate, "MMMM D, YYYY", true); 
    var unix = moment.utc(newDate, "X", true); 

    if (natural.isValid() || unix.isValid()) { 
     if (natural.isValid()) { 
      newDate = natural; 
     } else { 
      newDate = unix; 
     } 

     res.json({unix: newDate.format("X"), natural: newDate.format("MMMM D, YYYY")}); 
    } else { 
     res.json({unix: null, natural: null}); 
    } 

    res.end();  
}); 

module.exports = router; 

가 무슨 일이 일어날 것으로 예상되는 :

로컬 호스트/타임 스탬프해야 나에게 "Hello World!"

로컬 호스트/타임 스탬프 나에게 로컬 호스트/타임 스탬프/someDate 나를을주는 날짜와 JSON 파일을 제공합니다 로컬 호스트/타임 스탬프/someDate는

그러나 여기 실제로 일어나는 것이다 나에게 날짜와 JSON 파일을 제공해야 오류가 발생하지 않음 "Hello World"는 표시되지 않습니다.

+0

날짜 매개 변수를 제공하지 않으므로 localhost/timestamp가 오류를 발생시키지 않아야합니까? – kalin

답변

3

app.get("/timestamp", timestamp);app.use("/timestamp", timestamp);으로 변경하십시오.

당신이 현재 수행하고있는 GET 요청에 대한 콜백이 아니라 라우터에 미디어 경로 /timestamp 경로에 타임 스탬프를 마운트하려한다고 생각합니다.