gpt4 book ai didi

node.js - 为什么我的 Express API 没有响应?

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:59 24 4
gpt4 key购买 nike

背景

我正在使用 NodeJs v7 和 cloud9 中的 Express 测试一个简单的 Hello World 应用程序。我试图让我的示例起作用,但失败了。

问题

我的所有 cloud9 配置都很好,所以这不是问题。问题是我的应用程序。当我调试时,路由“api/v1/HolaBananas”永远不会被调用,我不知道为什么!

更糟糕的是,当我发出请求时,浏览器只是挂起,就像它正在等待服务器永远不会给出的答案一样!

代码

index.js 包含初始化和启动代码。出于模块化原因,将其与 api.js 分开对我来说很重要。

index.js

"use strict";

const express = require("express");

const app = express();
app.use("/api/v1", require("./api.js"));

app.listen(process.env.PORT);
console.log(`Server listening on port ${process.env.PORT}!`);

api.js 仅包含路由以及它们应该执行的操作。

api.js

"use strict";

const express = require("express");

module.exports = function() {

const api = express.Router();

api.get("/HolaBananas", function(req, res){
res.send("hello bananas!");
});

return api;
};

问题

我确信我没有以正确的方式使用 api.get,但我确实想将初始化和启动代码与 api 分开。

  • 如何修复我的代码以使其正常工作?

注意

我正在关注类(class)

https://www.edx.org/course/introduction-mongodb-using-mean-stack-mongodbx-m101x-0

最佳答案

可以通过以下两种方式修复

var api = require("./api.js")();
app.use("/api/v1", require("./api.js"));

as API.js 返回一个函数引用。所以你需要调用该函数来访问路由。

或者如果您不想更改index.js,则需要按如下方式修改您的api.js

"use strict";

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

api.get("/HolaBananas", function(req, res){
res.send("hello bananas!");
});
module.exports = api;

关于node.js - 为什么我的 Express API 没有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43113002/

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