web-dev-qa-db-ja.com

nextjsアプリケーションのエントリポイントでしたか?

Nextjsアプリをc-panelホスティングにデプロイする場合、アプリケーションのエントリポイントを要求します。デフォルトはapp.jsです。通常の反応アプリケーションでは完全に制御されますが、nextjsを使用する場合、アプリケーションを起動するためにどのjsファイルが責任があるかは明確ではありません。

enter image description here

アプリケーションのエントリポイントとして正しいjsファイルを選択することについてのアイデアはありますか?

編集:

私のホスティングプロバイダーは、次のコードを提供して、(nextのリクエストハンドラーを使用する)Expressアプリをセットアップしてリクエストを処理します。

const express = require('express');
const next = require('next');

const dev = process.env.NODE_ENV !== 'production';
const nextApp = next({ dev });
const handle = nextApp.getRequestHandler();

const port = 3454;

nextApp.prepare().then(() => {
  const app = express();

  app.get('*', (req, res) => {
    return handle(req, res);
  });

  app.listen(port, err => {
    if (err) throw err;
    console.log(`> Ready on localhost:${port}`);
  });
});

動作しますが、オンデマンドでサーバーリクエストに対してソースファイルをコンパイルするため、処理が遅くなります。

2
Behnam Esmaili

私にとっての最善の解決策は、いくつかのプロセスマネージャーを使用してbootstrapアプリケーションを実行することでした。したがって、 PM2 を使用してアプリケーションを起動し、実行を続けました。次のコマンドをc-panelターミナルと今はうまく機能します:

NODE_ENV=production pm2 start server.js

与えられたserver.jsには次のコードがあります:

const express = require('express');
const next = require('next');

const dev = process.env.NODE_ENV !== 'production';
const nextApp = next({ dev });
const handle = nextApp.getRequestHandler();

const port = 3454;

nextApp.prepare().then(() => {
  const app = express();

  app.get('*', (req, res) => {
    return handle(req, res);
  });

  app.listen(port, err => {
    if (err) throw err;
    console.log(`> Ready on localhost:${port}`);
  });
});
0
Behnam Esmaili