2016-09-29 145 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文件

但這裏到底發生了什麼:

本地主機/時間戳給了我與日期的JSON文件 本地主機/時間戳/ someDate給了我一個無法獲取錯誤 而「Hello World」從未顯示

+0

不應該本地主機/時間戳拋出一個錯誤,因爲你不會提供日期參數? – kalin

回答

3

將行app.get("/timestamp", timestamp);更改爲app.use("/timestamp", timestamp);

我想你打算安裝的時間戳路由器中間件/timestamp路徑上,而不是作爲一個回調的GET請求這是目前你在做什麼。