Что мне нужно знать, чтобы перенести работающий проект Node?

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

Когда я заархивировал его и перенес на свой Mac, страница загрузилась, но никаких функций, специфичных для Node, не появилось. Консоль Chrome сообщает:

Uncaught TypeError: type.toUpperCase is not a function              react-with-addons: 9729

Поиски в StackOverflow и в Интернете показывают, что многие люди сталкиваются с этой ошибкой, и не так много людей понимают, что может быть сообщением об ошибке вторичного повреждения.

На данный момент я озадачен, потому что я переношу со своего сервера на свой ноутбук, и он не работает. Тот же размер файла tgz до байта.

Я задавался вопросом, нужно ли мне выполнять установку npm с моего ноутбука на тот случай, если меня огорчает то, что что-то доступно на сервере, но не на моем ноутбуке. Теперь кажется, что Node.js запускается, но сильно падает при попытке загрузки страницы:

$ bin/www
Server running.

TypeError: Cannot read property 'status' of undefined
    at new ResourceError (/Users/jonathan/server/node_modules/express-stormpath/node_modules/stormpath/lib/error/ResourceError.js:7:29)
    at Request.onRequestResult [as _callback] (/Users/jonathan/server/node_modules/express-stormpath/node_modules/stormpath/lib/ds/RequestExecutor.js:96:23)
    at Request.self.callback (/Users/jonathan/server/node_modules/express-stormpath/node_modules/stormpath/node_modules/request/request.js:123:22)
    at Request.emit (events.js:98:17)
    at Request. (/Users/jonathan/server/node_modules/express-stormpath/node_modules/stormpath/node_modules/request/request.js:1047:14)
    at Request.emit (events.js:117:20)
    at IncomingMessage. (/Users/jonathan/server/node_modules/express-stormpath/node_modules/stormpath/node_modules/request/request.js:998:12)
    at IncomingMessage.emit (events.js:117:20)
    at _stream_readable.js:944:16
    at process._tickCallback (node.js:442:13)

Итак, возможно, из суеверия, я перемещаю все в node_modules во временный каталог вне иерархии и выполняю полную установку npm.

Я получаю ту же ошибку, TypeError: Cannot read property 'status' of undefined.

Я не уверен, задаю ли я вопрос XY (или наоборот?), но я хотел спросить:

Я хочу, чтобы мое веб-приложение работало из двух мест: разработки и производства.

У меня возникают нетривиальные трудности с копированием из производства в разработку.

Как мне следует подходить к делу, чтобы я мог по своему желанию вносить изменения в разрабатываемую копию и развертывать ее в рабочей среде, когда это представляется уместным? Нужно ли перезапускать архив с (производственного) сервера? Есть ли что-то основное, что я должен прочитать?

Спасибо,


person Christos Hayward    schedule 31.08.2015    source источник
comment
У вас случайно нет файлов, имена которых различаются только регистром. Раньше компьютеры Mac были и могут оставаться нечувствительными к регистру.   -  person Dan D.    schedule 31.08.2015
comment
Маки сохраняют регистр. Но я не думаю, что чувствительность/сохранение/нечувствительность к регистру здесь является проблемой; он ушел с Mac на Linux и на Mac.   -  person Christos Hayward    schedule 31.08.2015
comment
Вы копируете ключ API stormpath?   -  person stdob--    schedule 31.08.2015
comment
Да, у меня есть ключ Stormpath API.   -  person Christos Hayward    schedule 01.09.2015
comment
@DanD., чувствительность к регистру - это поведение файловых систем, имеющих дело с именами файлов. Это не влияет, например. содержимое файлов JavaScript; если у вас должен быть набор имен файлов JavaScript, которые не конфликтуют, Chrome не будет знать или заботиться о том, на какой системе он работает, а чувствительность к регистру будет обрабатываться в соответствии с правилами языка. Проблема с вызовом type.toUpperCase не должна быть проблемой, если обработка регистра в файловой системе оказывает какое-либо влияние.   -  person Christos Hayward    schedule 01.09.2015
comment
Время читать исходный код. Можете ли вы опубликовать точную версию stormpath, которую вы установили в обоих местах, и версию узла, который вы используете на каждой машине?   -  person Peter Lyons    schedule 01.09.2015
comment
@PeterLyons Stormpath — 0.10.2 на ноутбуке, 0.10.0 на сервере; Node v0.10.36 на ноутбуке и v0.12.7 на сервере. Нужно ли мне переустанавливать одну или обе версии до текущей производственной версии?   -  person Christos Hayward    schedule 01.09.2015
comment
Эти номера stormpath, похоже, не соответствуют фактическим выпускам. Я ожидаю один из номеров выпуска, показанных здесь: github.com/stormpath/stormpath-express/ релизы   -  person Peter Lyons    schedule 01.09.2015
comment
Имеется в виду удалить Stormpath и переустановить последнюю стабильную версию? (Или что-то еще?) Спасибо!   -  person Christos Hayward    schedule 02.09.2015
comment
Спасибо тебе за помощь. Я понял, что вопрос, который у меня был, меняется, и я вырезал отдельный вопрос по адресу stackoverflow.com/questions/32359759/ . Любая помощь с вопросом о преемнике будет оценена по достоинству. Спасибо,   -  person Christos Hayward    schedule 02.09.2015
comment
Привет, Джонатан, я только что ответил на ваш другой поток SO - если вам нужна помощь с этим, вы можете опубликовать ВЕСЬ свой код здесь - невозможно отлаживать, не просматривая все (включая package.json).   -  person rdegges    schedule 04.09.2015


Ответы (1)


В будущем, чтобы преодолеть такие проблемы, когда среда разработки и производства постоянно меняются, стоит потратить некоторое время на проверку Docker.

Докер

Это позволяет вам удалить проблемы с хост-компьютера и вместо этого запускать экземпляры, контейнеры, содержащие приложение/систему.

person hudsond7    schedule 02.09.2015