问题在Azure Web App上的iisnode上运行Next.js

时间:2018-01-25 19:52:16

标签: node.js azure express iisnode next.js

尝试在Azure Web App上部署和运行Next.js.使用Express.js运行Azure Web App时可以正常工作,但只要我调用nex()就失败了。尝试在Azure门户中启用错误记录,但没有出现任何用途,只有通用500错误。

以下是有效的,有效的是什么。

使用:

var express = require('express');
var expressServer = express();

expressServer.get('/', function (req, res) {
    res.send('Express is working on IISNode!');
});

expressServer.listen(process.env.PORT || 8080);

不起作用:

var express = require('express');
const next = require('next');
var expressServer = express();
var app = next();

expressServer.get('/', function (req, res) {
    res.send('Express is working on IISNode!');
});

expressServer.listen(process.env.PORT || 8080);

由于app = next()失败,我甚至不打扰获取请求处理程序。

的package.json:

"engines": {
    "node": "9.4.0 || 8.9.x"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.2",   
    "next": "^4.2.3",
    "next-redux-wrapper": "^1.3.5",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-redux": "^5.0.6",
    "redux": "^3.7.2",
    "redux-thunk": "^2.2.0"
  },
  "devDependencies": {
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "nodemon": "^1.14.11"
  }

修改 我认为问题是next build需要先运行。我正在寻找是否可以添加一些像Kudu这样的post deployment / build命令。如果您有任何建议,请告诉我。

1 个答案:

答案 0 :(得分:4)

你是对的,你需要先运行next build

因此,如果您在项目根目录下创建pages目录并编辑package.json以添加此目录,这将在Azure Web App中有效:

"scripts": {
    "postinstall": "next build"
}