Проблема при загрузке экспресс сервера и реакции приложения во время героки - PullRequest
0 голосов
/ 22 июня 2019

Я использовал приложение create-реакции-приложение, а затем сделал экспресс-сервер для обработки чеков. Все работает на моем локальном хосте, но мне нужно запустить npm start и в другом терминале, node server.js. Чтобы они могли общаться друг с другом, я добавил прокси в package.json к порту сервера, работающему на localhost: 9000, это не работает в heroku, поэтому я удалил его и могу развернуть на Heroku, но на сервере не запускается, я не думаю, что я когда-либо запускаю сервер ...

Я считаю, что проблема в том, что у меня сейчас только один package.json. И его стартовый скрипт начинает реагировать, а не сервер ... Из того, что я прочитал, мне нужен другой package.json специально для server.js, но каждый раз, когда я пытался это сделать, что-то ломалось ... Я пытался переместив его в свою папку, добавив туда package.JSON. Я попытался сохранить исходный пакет .JSON там, где он находится, и скопировать его в папку src с помощью app.js, затем изменив стартовый скрипт в исходном файле на «node server.js» ... Я потерян

структура

root
-build
-node modules
-public
--index.html
-src
--app.js
--...
-env
-gitignore
-package.json
-server.js
package.JSON
{
  "name": "...",
  "version": "0.1.0",
  "private": true,
  "engines": {
    "node": "10.15.3"
  },
  "dependencies": {
    "axios": "^0.19.0",
    "body-parser": "^1.19.0",
    "dotenv": "^8.0.0",
    "express": "^4.17.1",
    ...
    "stripe": "^7.2.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "proxy": "http://localhost:9000"
}
server.js
require('dotenv').config()
const app = require("express")();
const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);

app.use(require("body-parser").json());

app.post("/charge", async (req, res) => {
    try {
        let { status } = await stripe.charges.create({
            amount: 2500,
            currency: "usd",
            description: "...",
            source: req.body.token,
            metadata: {
                ...
            },
        });

        res.json({ status });
    } catch (err) {
        res.status(500).end();
    }

});

app.listen(process.env.PORT || 9000, () => console.log("Listening on port 9000"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...