Я пытаюсь настроить рендеринг на стороне сервера для моего приложения 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'
...
Как добавить / создать конечная точка и сделать мой компонент с ответом? и если возможно добавить данные к нему?