gpt4 book ai didi

javascript - Axios Api 在 Heroku 中调用

转载 作者:行者123 更新时间:2023-11-28 17:44:12 25 4
gpt4 key购买 nike

我已将我的应用程序部署到heroku,并将其连接到mongoLab。我的问题是使用 axios 的 API 调用无法与 Heroku 一起使用,因为它们仍然是在本地设置的。是否有一个动态环境变量我必须替换 baseURL 才能使其工作?我尝试研究这个但没有运气。

参见下面的代码

export default {


saveClient: function(clientData) {
return axios({
method:"post",
url:"/api/saveClient",
baseURL:"http://localhost:3001",
data:clientData
})

}

----------------------
server.js is below



const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const app = express();
const PORT = process.env.PORT || 3001;
const cors = require("cors")
app.use(cors())
// Configure body parser for AJAX requests
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// Serve up static assets
app.use(express.static("client/build"));

var apiRoutes = require("./controllers/clientController.js");
var validatorRoutes = require("./controllers/validatorRoutes.js")
app.use("auth",validatorRoutes)
app.use("/api", apiRoutes);
mongoose.Promise = global.Promise;
// Connect to the Mongo DB
mongoose.connect(
process.env.MONGODB_URI || "mongodb://skillBuilder:qwerty123@ds143707.mlab.com:43707/heroku_2s9vp225",
{
useMongoClient: true
}
);

// Start the API server
app.listen(PORT, function() {
console.log(`🌎 ==> API Server now listening on PORT ${PORT}!`);
});
<小时/>

最佳答案

您实际上可以完全删除 baseUrl 选项并仅使用相对 URL '/api/saveClient'。这适用于您的开发和生产环境。 当您使用相对 url 时 axios 将默认为http://你的应用程序名称.herokuapp.com/api/saveClient。

但是,如果您必须显式显示 baseUrl,则适当的 baseUrl 将是:http://你的应用程序名称.herokuapp.com。为了避免对此进行硬编码,您可以尝试以下操作:

baseUrl = process.env.baseURL || “http://localhost:3001”

Heroku 允许您在其控制台中以简单的方式设置环境变量:dashboard.heroku.com/apps/your-app-name/settings。我认为您不需要这个,但是随着您的应用程序的增长并且您希望更轻松地配置生产环境,了解这一点是件好事。

关于javascript - Axios Api 在 Heroku 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47164330/

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