0

我使用 react、mongodb、express、nodeJS 开发了一个应用程序。我能够在我的桌面上完美地运行该应用程序。我已经在不同的端口上运行 express & react。但是当我将它部署到heroku时这不起作用。

服务器.js

const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');

var Schema = mongoose.Schema;
var session = require('express-session');
var cookieParser = require('cookie-parser');
var cors=require('cors');
//setup express app
const app = express();
app.use(cors());



//connect to mongodb
mongoose.connect(process.env.MONGODBURI);
mongoose.Promise = global.Promise;
//connect public folder
app.use(express.static('public'));

//bodyparser middleware
app.use(bodyParser.json());

//routes middleware
app.use(cookieParser())
app.use(session({secret: 'MySecret'}));
app.use('/userapi',require('./routes/userapi.js'));
app.use('/cde',require('./routes/cde.js'));
app.use('/efg',require('./routes/efg.js'));

//error handler middleware
app.use(function(err,req,res,next){
  res.status(422).send({error: err.message});
});

const port = process.env.PORT || 8080;
app.listen(port, () => {
  console.log('Express server listening on port', port)
});

包.json

    {
  "name": "vip",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "afterglow": "0.0.3",
    "afterglowplayer": "^1.1.0",
    "axios": "^0.17.1",
    "body-parser": "^1.18.2",
    "cookie-parser": "^1.4.3",
    "cookieparser": "^0.1.0",
    "cors": "^2.8.4",
    "express": "^4.16.2",
    "express-session": "^1.15.6",
    "foreman": "^2.0.0",
    "fs": "0.0.1-security",
    "gifffer": "^1.5.1",
    "glamor": "^2.20.40",
    "image-map-resizer": "^1.0.3",
    "jquery": "^3.3.1",
    "marked": "^0.3.12",
    "mongoose": "^5.0.1",
    "natural": "^0.5.6",
    "react": "^16.2.0",
    "react-data-menu": "^1.1.1",
    "react-dom": "^16.2.0",
    "react-gif": "^0.1.0",
    "react-modal": "^3.1.13",
    "react-scripts": "1.1.0",
    "react-toastify": "^3.4.2",
    "redux": "^3.7.2",
    "shelljs": "^0.8.1",
    "video-react": "^0.9.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  },
  "devDependencies": {
    "nodemon": "^1.14.12",
    "react-router-dom": "^4.2.2"
  }
}

我已将所有代码推送到 heroku,并在 heroku 仪表板设置中将 mongodb uri 设置为 mlab。当我请求快递时,它给了我一个错误

GET https://myappname.herokuapp.com/userapi/verifylogin?email=aa&password=aa  404 (Not Found)

createError.js:16 Uncaught (in promise) Error: Request failed with status code 404
at createError (createError.js:16)
at settle (settle.js:18)
at XMLHttpRequest.handleLoad (xhr.js:77)

用户API`

const express = require('express');
const router = express.Router();
const User = require('../models/Login');
const LoginSession = require('../models/LoginSession');
const server = require('../server');

//find a record matching username & Password
router.get('/verifylogin',function(req,res,next){
  User.findOne({email:req.query.email,password:req.query.password}).then(function(sequence_data){
    res.send(sequence_data);
  });
});


module.exports = router;

`我已经浏览了许多其他相关的帖子,但没有解决。

4

0 回答 0