Проблема, когда я запускаю npm запустить dev в моем бэкэнде узла - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь построить API с узлом, и мой внешний интерфейс отделен в папке, называемой клиентом, и эти файлы (package. json, server. js находятся в папке моего проекта root. Когда я хочу npm запустите dev, он выдаст мне эту ошибку:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! clothing-server@1.0.0 dev: `concurrently --kill-others-on-fail "npm server" "npm client"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the clothing-server@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Вот мой сервер. js:

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

if (process.env.NODE_ENV !== 'production') require('dotenv').config();

const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);

const app = express();

const port = process.env.PORT || 5000;

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cors());

if (process.env.NODE_ENV === 'production') {
  app.use(express.static(path.join(__dirname, 'client/build')));

  app.get('*', function(req, res) {
    res.sendFile(path.join(__dirname, 'client/build', 'index.html'));
  });
}
app.listen(port, error => {
  if (error) throw error;
  console.log(`Server running on ${port}`);
});

app.post('/payment', (req, res) => {
  const body = {
    source: req.body.token.id,
    amount: req.body.amount,
    currency: 'usd'
  };
  stripe.charges.create(body, (stripeErr, stripeRes) => {
    if (stripeErr) {
      res.status(500).send({ error: stripeErr });
    } else {
      res.status(200).send({ error: stripeRes });
    }
  });
});

и мой пакет. json:

 {
  "name": "clothing-server",
  "version": "1.0.0",
  "engines": {
    "node": "10.16.0",
    "npm": "6.9.0"
  },
  "scripts": {
    "client": "cd client && npm start",
    "server": "nodemon server.js",
    "build": "cd client && npm run build",
    "dev": "concurrently --kill-others-on-fail \"npm server\" \"npm client\"",
    "start": "node server.js",
    "heroku-postbuild": "cd client && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
  },
  "dependencies": {
    "body-parser": "^1.19.0",
    "compression": "1.7.4",
    "cors": "2.8.5",
    "dotenv": "8.2.0",
    "express": "^4.17.1",
    "stripe": "8.6.0"
  },
  "devDependencies": {
    "concurrently": "^5.0.2"
  }
}

Я пытаюсь удалить мой файл блокировки и node_modules и npm очистить кеш, но они не помогают

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

В вашем пакете. json файл, он должен быть "dev": "одновременно --kill-others-on-fail \" npm запустить сервер \ "\" npm запустить клиент \ ""

0 голосов
/ 24 января 2020

Ваш npm run dev скрипт вызывает npm server, который он пытается назвать nodemon server.js, но, очевидно, nodemon не установлен в вашем проекте. Просмотрите свой список зависимостей и установите nodemon или удалите его из серверного скрипта.
Видимо, он должен работать;)

...