Приложение Heroku падает из-за отсутствия модуля «запрос-обещание» - PullRequest
2 голосов
/ 20 апреля 2020

Я новичок в стеке MERN (и программировании в целом). Я создаю приложение, используя heroku для выполнения задания, и мой прокси-сервер испытывает проблемы с зависимостями.

Вот журнал heroku:

2020-04-20T01:16:43.000000+00:00 app[api]: Build succeeded
2020-04-20T01:16:44.447430+00:00 heroku[web.1]: State changed from crashed to starting
2020-04-20T01:16:50.175664+00:00 heroku[web.1]: State changed from starting to crashed
2020-04-20T01:16:50.087369+00:00 app[web.1]: internal/modules/cjs/loader.js:983
2020-04-20T01:16:50.087379+00:00 app[web.1]: throw err;
2020-04-20T01:16:50.087379+00:00 app[web.1]: ^
2020-04-20T01:16:50.087380+00:00 app[web.1]: 
2020-04-20T01:16:50.087380+00:00 app[web.1]: Error: Cannot find module 'request-promise'
2020-04-20T01:16:50.087380+00:00 app[web.1]: Require stack:
2020-04-20T01:16:50.087381+00:00 app[web.1]: - /app/server.js
2020-04-20T01:16:50.087382+00:00 app[web.1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
2020-04-20T01:16:50.087382+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:862:27)
2020-04-20T01:16:50.087382+00:00 app[web.1]: at Module.require (internal/modules/cjs/loader.js:1042:19)
2020-04-20T01:16:50.087383+00:00 app[web.1]: at require (internal/modules/cjs/helpers.js:77:18)
2020-04-20T01:16:50.087383+00:00 app[web.1]: at Object.<anonymous> (/app/server.js:12:10)
2020-04-20T01:16:50.087384+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1156:30)
2020-04-20T01:16:50.087384+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
2020-04-20T01:16:50.087384+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:1000:32)
2020-04-20T01:16:50.087385+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:899:14)
2020-04-20T01:16:50.087385+00:00 app[web.1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
2020-04-20T01:16:50.087386+00:00 app[web.1]: at internal/main/run_main_module.js:18:47 {
2020-04-20T01:16:50.087386+00:00 app[web.1]: code: 'MODULE_NOT_FOUND',
2020-04-20T01:16:50.087387+00:00 app[web.1]: requireStack: [ '/app/server.js' ]
2020-04-20T01:16:50.087387+00:00 app[web.1]: }
2020-04-20T01:21:53.525467+00:00 heroku[web.1]: State changed from crashed to starting
2020-04-20T01:21:58.716936+00:00 heroku[web.1]: State changed from starting to crashed
2020-04-20T01:21:58.650366+00:00 app[web.1]: internal/modules/cjs/loader.js:983
2020-04-20T01:21:58.650395+00:00 app[web.1]: throw err;
2020-04-20T01:21:58.650395+00:00 app[web.1]: ^
2020-04-20T01:21:58.650395+00:00 app[web.1]: 
2020-04-20T01:21:58.650396+00:00 app[web.1]: Error: Cannot find module 'request-promise'
2020-04-20T01:21:58.650396+00:00 app[web.1]: Require stack:
2020-04-20T01:21:58.650396+00:00 app[web.1]: - /app/server.js
2020-04-20T01:21:58.650397+00:00 app[web.1]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
2020-04-20T01:21:58.650397+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:862:27)
2020-04-20T01:21:58.650398+00:00 app[web.1]: at Module.require (internal/modules/cjs/loader.js:1042:19)
2020-04-20T01:21:58.650398+00:00 app[web.1]: at require (internal/modules/cjs/helpers.js:77:18)
2020-04-20T01:21:58.650398+00:00 app[web.1]: at Object.<anonymous> (/app/server.js:12:10)
2020-04-20T01:21:58.650399+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:1156:30)
2020-04-20T01:21:58.650399+00:00 app[web.1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
2020-04-20T01:21:58.650438+00:00 app[web.1]: at Module.load (internal/modules/cjs/loader.js:1000:32)
2020-04-20T01:21:58.650439+00:00 app[web.1]: at Function.Module._load (internal/modules/cjs/loader.js:899:14)
2020-04-20T01:21:58.650440+00:00 app[web.1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
2020-04-20T01:21:58.650441+00:00 app[web.1]: at internal/main/run_main_module.js:18:47 {
2020-04-20T01:21:58.650441+00:00 app[web.1]: code: 'MODULE_NOT_FOUND',
2020-04-20T01:21:58.650441+00:00 app[web.1]: requireStack: [ '/app/server.js' ]
2020-04-20T01:21:58.650441+00:00 app[web.1]: }

Я попытался «пересобрать» свой пакет. json с npm install request, npm install request-promise и npm init и отправкой в ​​мой репозиторий github, затем развертывание его на heroku, но я получаю ту же ошибку.

здесь находится верх моего сервера. js:

var express = require('express');
var bodyParser = require('body-parser');
var passport = require('passport');
var authJwtController = require('./auth_jwt');
var User = require('./Users');
var Movie = require('./Movies');
var Review = require('./Reviews');
var jwt = require('jsonwebtoken');
var cors = require('cors');
var mongoose = require('mongoose');
const crypto = require("crypto");
var rp = require('request-promise');

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

{
  "name": "hw4removedforprivacy",
  "version": "1.0.0",
  "description": "week7a",
  "main": "server.js",
  "scripts": {
    "test": "mocha --timeout 10000 --exit",
    "start": "node server.js"
  },
  "author": "removedforprovacy",
  "license": "ISC",
  "dependencies": {
    "bcrypt-nodejs": "0.0.3",
    "body-parser": "^1.18.2",
    "cors": "^2.8.5",
    "express": "^4.16.2",
    "jsonwebtoken": "^8.1.1",
    "mongoose": "^5.0.9",
    "passport": "^0.4.0",
    "passport-http": "^0.3.0",
    "passport-jwt": "^3.0.1",
    "request": "^2.88.2"
  },
  "devDependencies": {
    "chai": "^4.2.0",
    "chai-http": "^4.2.0",
    "dotenv": "^6.2.0",
    "mocha": "^5.2.0",
    "request-promise": "^4.2.5",
    "sinon": "^7.2.2",
    "sinon-mongoose": "^2.2.1"
  },
  "directories": {
    "test": "test"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/blahblaghblaghremovedforprivacy"
  },
  "bugs": {
    "url": "https://github.com/blahblaghblaghremovedforprivacy"
  },
  "homepage": "https://github.com/blahblaghblaghremovedforprivacy"
}

Я не знаю, что делать ... Я очень смущен, почему сервер. js бегает локально но не на геройку. Спасибо заранее.

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

ты очень близко; но кажется, что вы оставили свой запрос-обещание внутри devDependencies случайно. Запрос-обещание должен быть в зависимости, потому что это пакет, который необходим вашему приложению для работы. Чтобы уточнить, пакеты в devDependencies будут удалены до развертывания

Бахрам прав, вам нужно сделать npm install request-promise. Вы, вероятно, сделали npm install request-promise --save-dev, и в результате он сохранил его под вашими devDependencies

Лучше всего хранить ваши devDependencies и зависимости отдельно. Вы можете найти эту услугу Heroku c полезной => https://devcenter.heroku.com/changelog-items/1376

1 голос
/ 20 апреля 2020

попробуйте npm i request-promise или npm install request-promise -s, чтобы сохранить запрос-обещание в вашем пакете. json. Затем попробуйте развернуть

...