gpt4 book ai didi

node.js - ExpressJS 路由错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:29:42 25 4
gpt4 key购买 nike

我正在尝试创建一组微服务。问题是,我的路线似乎没有重定向到正确的位置。

这是我的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;

这是应该发生的事情:

localhost/timestamp 应该给我“Hello World!”localhost/timestamp/someDate 应该给我一个带有日期的 JSON 文件

但实际发生的情况是这样的:

localhost/timestamp 为我提供了一个包含日期的 JSON 文件localhost/timestamp/someDate 给我一个 Cannot GET 错误并且“Hello World”从未显示

最佳答案

将行 app.get("/timestamp", timestamp); 更改为 app.use("/timestamp", timestamp);

我认为您打算在 /timestamp 路径上安装时间戳路由器中间件,而不是作为您当前正在执行的 GET 请求的回调。

关于node.js - ExpressJS 路由错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com