无法使用Express

问题描述

嗨,我正在尝试使用express来展示我的react应用,因为我将使用docker容器,但是当我使用res.render()时,它会错误地指出无法找到模块'js'。

import express from 'express';
import path from 'path';
import expressReactViews from 'express-react-views';

const app = express();
// Constants
const PORT = 8080;
const HOST = '0.0.0.0';
var __dirname = path.resolve();


app.set('view engine','jsx');
app.engine('jsx',expressReactViews.createEngine())


app.use(express.static(path.join(__dirname,"..","public")));
app.use(express.static("public"));


app.use((req,res,next) => {
  res.render(path.join(__dirname,"index.js"));
});

解决方法

首先检查您的package.json(如果包含),然后尝试npm install。 其次使用通用js而不是使用import use require。

const express = require("express");
const path = require("path");

如果仍然无法正常工作,则可能找不到index.js的路径位置

,

如果使用React,则应该返回HTML文件。您也不需要视图引擎。

    res.render(path.join(__dirname,"..","index.html"));

其中

".." 

是您的构建文件夹的路径。