我的node.js(express)服务器在部署到Azure后未启动。
我在一个Github仓库里有好几个项目结构如下:
.github
workflows
main_serverexamplewebapp.yml
src
server_example
package.json
server.js
project_2
字符串
我想将src/server_example部署到Azure Web App并运行server.js。
main_server示例webapp.yml
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions
name: Build and deploy Node.js app to Azure Web App - serverexamplewebapp
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js version
uses: actions/setup-node@v1
with:
node-version: '18.x'
- name: npm install, build, and test
working-directory: ./src/server_example
run: |
npm install
npm run build --if-present
npm run test --if-present
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v2
with:
name: node-app
path: .
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v2
with:
name: node-app
- name: 'Deploy to Azure Web App'
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: 'serverexamplewebapp'
slot-name: 'Production'
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_12345 }}
package: .
型
server.js
const express = require("express");
const app = express();
// parse requests of content-type - application/json
app.use(express.json());
// parse requests of content-type - application/x-www-form-urlencoded
app.use(express.urlencoded({ extended: true }));
// simple route
app.get("/", (req, res) => {
res.json({ message: "Welcome!" });
});
const PORT = process.env.PORT || 8080
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}.`);
});
型
package.json
{
"name": "server_example",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node server.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.2"
}
}
型
Github操作已成功完成(生成和部署)。在Azure部署中心中也没有错误:
Deployment successful. deployer = GITHUB_ZIP_DEPLOY deploymentPath = ZipDeploy. Extract zip.
型
但是当我打开URL时,会出现默认的Azure消息“您的Web应用程序正在运行并等待您的内容”。
部署后,我应该如何在Azure上运行server.js?
1条答案
按热度按时间kmynzznz1#
所以,我做了这些事情来解决这个问题:
1.**更改了
main_serverexamplewebapp.yml
:**我已经将actions/upload-artifact@v2
中的path
从.
更改为./src/server_example
(它是我的repo中的项目路径)。以下是正确的片段:字符串
1.在Azure配置中添加了
npm run start
(左栏“配置”->“常规设置”选项卡->在“启动命令”输入中添加npm run start
)x1c 0d1x