它在主screen.How上给了我一个空白页面,我能解决它吗?我想渲染我的前端,并想在屏幕上看到我的网站,但它给了我“无法获取/”。我的前端是用React.js构建的,我如何将它与node.js和express连接起来,以便在屏幕上查看它?
这是我的代码-
require('dotenv').config({ path: 'env' });
const dotenv = require("dotenv");
dotenv.config();
const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const cookieParser = require('cookie-parser');
const SocketServer = require('./socketServer');
const corsOptions = {
Credential: 'true',
};
const app = express();
app.use(express.static("C:/Users/chirag/Downloads/mern-social-media-master/mern-social-media-master/" + '/public'));
app.get('/', (req,res,next) => {
res.sendfile("C:/Users/chirag/Downloads/mern-social-media-master/mern-social-media-master/" + "/public/index.html");
})
app.use(express.json())
app.options("*" , cors(corsOptions));
app.use(cors(corsOptions));
app.use(cookieParser())
//#region // !Socket
const http = require('http').createServer(app);
const io = require('socket.io')(http);
io.on('connection', socket => {
SocketServer(socket);
})
//#endregion
//#region // !Routes
app.use('/api', require('./routes/authRouter'));
app.use('/api', require('./routes/userRouter'));
app.use('/api', require('./routes/postRouter'));
app.use('/api', require('./routes/commentRouter'));
app.use('/api', require('./routes/adminRouter'));
app.use('/api', require('./routes/notifyRouter'));
app.use('/api', require('./routes/messageRouter'));
//#endregion
const URI = process.env.MONGODB_URL;
mongoose.connect(URI, {
useCreateIndex:true,
useFindAndModify:false,
useNewUrlParser:true,
useUnifiedTopology:true
}, err => {
if(err) throw err;
console.log("Database Connected!!")
})
const port = process.env.PORT || 8080;
http.listen(port, () => {
console.log("Listening on ", port);
});
HTML代码-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<script type="text/javascript" src='C:\Users\chirag\Downloads\mern-social-media-master\mern-social-media-master\client\src\index.js'></script>
<title>Web App</title>
</head>
<body>
<script type="text/javascript" src='C:\Users\chirag\Downloads\mern-social-media-master\mern-social-media-master\client\src\index.js'></script>
</body>
</html>
我试过几种方法,但都无法解决这个问题。是因为cloudinary还是mongoDB数据库?
我已经添加了一些代码,并修改了其中的几个部分,但错误无法纠正。
我该如何解决这个问题呢?
发布于 2021-10-15 22:43:35
get/
在这里指的是默认端点,它的类型是get
,并且在URL中只包含/
。在您的代码中,所有端点都以/api
开头,因此您可以添加一个新的默认端点/路由,如下所示:
app.get('/',(req, res) => {
res.send("Hello World")
})
当您导航到主屏幕时,它将在您的浏览器上显示Hello World。
发布于 2021-10-15 22:44:51
因为您没有任何主路由。在顶部添加一条主路由,如bellow。
app.use('/', (req,res,next) => {
return res.json('this is home route')
});
发布于 2021-10-15 23:20:32
创建一个index.html,其中包含index.js文件,并为您的主路由创建index.html服务器。在你的后台做如下操作
// add following
app.use(express.static(__dirname + '/public'));
// Remove Following
app.get('C:\Users\chirag\Downloads\mern-social-media-master\mern-social-media-master\client\src\index.js',(req, res) => {
res.send("C:\Users\chirag\Downloads\mern-social-media-master\mern-social-media-master\client\src\index.js")
})
// Add Following
app.get('/', (req,res,next) => {
res.sendfile(__dirname + '/public/index.html');
})
https://stackoverflow.com/questions/69593276
复制相似问题