我正在尝试创建一个微服务集合。问题是,我的路线似乎没有重定向到正确的位置。
这是我的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);
这是我的'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;
以下是支持发生的事情:
localhost / timestamp应该给我“Hello World!” localhost / timestamp / someDate应该给我一个日期为
的JSON文件但这是实际发生的事情:
localhost / timestamp给了我一个带日期的JSON文件 localhost / timestamp / someDate给了我一个Can not GET错误 并且“Hello World”永远不会显示
答案 0 :(得分:3)
将行app.get("/timestamp", timestamp);
更改为app.use("/timestamp", timestamp);
。
我认为您打算在/timestamp
路径上安装时间戳路由器中间件,而不是作为您正在进行的GET请求的回调。