【问题标题】:receiving 404 not found when calling axios with node and heroku使用 node 和 heroku 调用 axios 时找不到 404
【发布时间】:2018-12-12 03:14:55
【问题描述】:

我的反应应用登陆页面调用和组件上的 axios.get 确实挂载了。在本地运行我的页面时我没有问题,但是当我使用 heroku 部署时,我的 axios 调用返回“404 not found nginx”。感觉就像一个简单的修复,虽然我似乎无法在网上找到任何适用于我的问题的线程。我的 server.js 配置如下

    const express = require("express");
const bodyParser = require("body-parser");
const cookieParser = require("cookie-parser");
const routes = require('./routes');
const dotenv = require("dotenv");
var request = require('request'); // "Request" library
var cors = require('cors');
var querystring = require('querystring');
var passport = require('passport');
var flash = require('connect-flash');
var session = require('express-session');
var morgan = require('morgan');

// var configDB = require('./config/database.js');

require('./config/passport')(passport); // pass passport for configuration


// const fs = require("fs");
var client_id = process.env.DB_SPOTIFY_CLIENT_ID; // Your client id
var client_secret = process.env.DB_SPOTIFY_CLIENT_SECRET; // Your secret
var redirect_uri = process.env.DB_REDIRECT_URI; // Your redirect uri


dotenv.config();
// const port = process.env.PORT || 3030;
const port = 3030



const app = express();
app.use(morgan('dev')); // log every request to the console
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());

app.set('view engine', 'ejs'); // set up ejs for templating

// required for passport
app.use(session({ secret: 'ilovescotchscotchyscotchscotch' })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session


// Demo middleware to play with error handling
app.use((req, res, next) => {
    const startTime = Date.now();
    console.log("Request Time: " + startTime);
    console.log(`${req.method} ${req.path}`);
    // Request returns 500, default handler returns error
    // as html with stack trace in dev, does not terminate server process.
    //throw new Error("Bazinga!");
    next();
    // Request returns 500, default handler returns error as html showing stack trace,
    // and terminates server process with error ERR_HTTP_HEADERS_SENT.
    //next(new Error("Bazonga!"));
    const endTime = Date.now();
    console.log(
        "Response Time: " + endTime + " Elapsed: " + (endTime - startTime)
    );
    // Request goes through, error is written to log.
    //throw new Error("Bazunga!");
});

// app.use("/node-api/server.js/schedule", (req, res, next) => {
//     fs.readFile("data/schedule.json", (err, data) => {
//         if (err) {
//             // If err, then
//             next(err);
//         } else {
//             res.type("json").send(data);
//         }
//     });
// });

// routes ======================================================================
require('./routes/LoginRegister.Routes')(app, passport); // load our routes and pass in our app and fully configured passport


app.use("/serverSideStuff/server.js", routes);

app.use((req, res) => {
    res.status(404).send("<h2>The path is not valid</h2>");
});

app.listen(port, () => {
    console.log(`Magic happens on port ${port}`);
});

【问题讨论】:

    标签: node.js reactjs heroku deployment axios


    【解决方案1】:

    您忘记取消注释此行: // 常量端口 = process.env.PORT || 3030;

    并删除这个: 常量端口 = 3030

    process.env.PORT 将是 heroku 端口 :)

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 2018-10-29
      • 2015-11-19
      • 2021-03-08
      • 1970-01-01
      • 2013-01-25
      • 2020-01-16
      • 2017-05-14
      • 1970-01-01
      相关资源
      最近更新 更多