Импорт внутреннего компонента на мою серверную часть Nodejs - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь настроить рендеринг на стороне сервера для моего приложения React и Nodejs, но мне трудно импортировать компоненты в код моего сервера. сервер. js:

if (process.env.APP_ENV) {
  require('./utils/appDynamics'); // eslint-disable-line global-require
}
require("@babel/register")({
  presets: ["@babel/preset-env"]
});

const http = require('http');
const express = require('express');
const bodyParser = require('body-parser');

process.env.WEBPACK_MODE = process.env.WEBPACK_MODE || 'production';

const setupAppRoutes = process.env.WEBPACK_MODE === 'production' ? require('./middlewares/production') : require('./middlewares/development');

const app = express();

app.use(bodyParser.json());

let server;

const mongo = require('./mongo');
mongo.connectDB();

const mysql = require('./mysql');
mysql.connectDB();

async function start(port = 8080) {
  // application routes
  setupAppRoutes(app);
  return new Promise((resolve) => {
    server = http.createServer(app).listen(port, () => {
      console.log(`HTTP server is now running on http://localhost:${port}`);
      resolve();
    })
      .on('error', (err) => {
        console.log(`Failed to start server ${err}`);
      });
  });
}

function close() {
  if (server) {
    server.close();
  }
}

module.exports = {
  close,
  start,
};

разработка. js

import React from 'react';
import App from '../../client/components/App/App.js';
const { resolve } = require('path');
const webpack = require('webpack');
const webpackDevMiddleware = require('webpack-dev-middleware');
const webpackHotMiddleware = require('webpack-hot-middleware');
const webpackConfig = require('../../../config/webpack.config.local');

const compiler = webpack(webpackConfig);

module.exports = function setup(app) {
  app.use(webpackDevMiddleware(compiler, {
    publicPath: webpackConfig.output.publicPath,
    stats: {
      colors: true,
    },
  }));

  app.use(webpackHotMiddleware(compiler));

  app.use('/health', (req, res) => {
    res.json({ description: 'Basic React Application with ES2015, Express.js, and Webpack 4', status: 'UP' });
  });

  // all other requests be handled by UI itself
  app.get('*', (req, res) => res.sendFile(resolve(__dirname, '..', '..', '..', 'build-dev', 'client', 'index.html')));
};

Я получаю сообщение об ошибке:

internal/modules/cjs/loader.js:583
    throw err;
    ^

Error: Cannot find module '../../client/components/App/App.js'
...

Как добавить / создать конечная точка и сделать мой компонент с ответом? и если возможно добавить данные к нему?

...