Как развернуть приложение NodeJs в веб-приложении Azure

Вы можете использовать восклицательный знак в ячейке iPython, чтобы установить autograd следующим образом:

!pip install autograd.

Таким образом, установка, как гарантируется, будет соответствовать Ячейка iPython.

-1
задан Cante Ibanez 19 January 2019 в 05:42
поделиться

1 ответ

«Установка npm» вызывается веб-приложением Azure, когда оно обнаруживает файл package.json в push-запросе. Устанавливает пакеты, перечисленные в «Зависимостях».

Однако, это не идеально. Один из моих проектов нуждался в SQLite, но он не был установлен. Я справился с этим, установив все пакеты локально, а затем отправив всю папку «node_modules» в Azure с помощью локального Git

. Я не буду рекомендовать помещать «sample_service.js» в «node_modules», поскольку эта папка создана изменено npm на основе зависимостей, перечисленных в "package.json". Попробуйте поместить "sample_services.js" вне, но в ту же папку, что и "node_modules".

Если «sample_services.js» является внутренним сервером Javascript, вам необходимо переименовать его в «server.js» или «app.js» из-за ограничений именования , когда развёртывание. Укажите его как «главный» в вашем «package.json», чтобы Azure запускал его как эквивалент «node server.js» в Windows Powershell, чтобы ваш бэкэнд работал, и включил следующий код в ваш «server.js»: [ 118]

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

Полученный файл «package.json» должен выглядеть примерно так:

{
  "name": "myProject",
  "version": "1.0.0",
  "engines": {
    "node": "8.10.0",
    "npm": "5.6.0"
  },
  "description": "Project X",
  "main": "server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node server.js"
  },
  "author": "me",
  "license": "ISC",
  "dependencies": {
    "express": "4.16.3",
    "sqlite3": "4.0.2"
  }
}

Azure автоматически выбирает, какую версию Node.js и npm использовать. Если у вас есть проблемы с совместимостью, укажите версию Node.js и npm, как я сделал

Кроме того, если вы использовали Express для маршрутизации, как я делал в предыдущем проекте, этот код в "server.js" запускается чтобы загрузить HTML-страницу по умолчанию:

app.get('/', function(req,res){
    console.log('default html loading');
    res.render('./public/index.html');
});

Опять же, из-за тех же ограничений именования, я назвал свою основную HTML-страницу как index.html

Если вы хотите попробовать полный пример или сравнительный код, я нашел это руководство полезным: https://www.codeproject.com/Articles/1133660/Deploy-Node-js-in-Microsoft-Azure

Ура!

0
ответ дан Looi 19 January 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: