我一直收到一个错误,说我不能在模块外使用import语句,我已经将后端文件夹中的包json设置为module类型,并且不认为我从前端导入应用程序时有语法错误。可能是什么问题?
这是我的服务器。
import express from "express"
import React from 'react'
import {renderToString} from 'react-dom/server'
import db from './db.js'
import App from '../frontend/src/App.js';
const app = express();
app.use(express.static('../frontend/public')); // added ../ to front end
app.get('*', (req, res) => {
const html = renderToString(React.createElement(App));
res.send(`
<!DOCTYPE html>
<html>
<head>
<title>My App</title>
</head>
<body>
<div id="root">${html}</div>
<script src="/index.js"></script>
</body>
</html>
`);
});
app.listen(8800, ()=> {
console.log("Connected to backend!")
})
这是我的app. js
import React from 'react';
import {Footer, Contact, WhoChawewo, Header} from './containers';
import {Navbar, Background} from './components';
import {BrowserRouter, Routes, Route} from 'react-router-dom';
import './App.css';
/* deleted div app */
const App = () => {
return (
<BrowserRouter>
<Navbar />
<Routes>
<Route exact path='/' element={< Header />}> </Route>
<Route path='/about' element={< WhoChawewo />}> </Route>
<Route path='/contact' element={< Contact />}> </Route>
</Routes>
<Footer/>
</BrowserRouter>
)
}
export default App
我没有使用任何transpilers,这可能是一个问题,或者有其他方法来实现通用渲染
1条答案
按热度按时间bnlyeluc1#
如果您已经在
package.json
中设置了"type": "module"
,您可以尝试使用.mjs
扩展名显式注解您的文件。What is the difference between .js and .mjs files?
您还可以尝试使用Babel将代码移植到旧版本的JavaScript(https://babeljs.io/)