В настоящее время у меня есть общий хостинг (CPanel), который обслуживает c сборку Node.JS для клиентского кода. На том же источнике и на общем хостинге у меня работает сервер express, показанный ниже:
const express = require('express')
const path = require('path')
const app = express()
const express = require('express')
const path = require('path')
const app = express()
// This doesn't work
app.get('/ping', (req, res) => {
return res.send('pong')
})
app.use(express.static(path.join(__dirname, 'build')))
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'build', 'index.html'))
})
app.listen(8080) (req, res) => {
return res.send('pong')
})
app.use(express.static(path.join(__dirname, 'build')))
// This serves out the static build of the client side code (App.js) - and works
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'build', 'index.html'))
})
app.listen(8080)
Я пытаюсь создать API для серверной стороны, чтобы взаимодействовать со стороной клиента. Главное приложение отлично работает, когда я открываю root '/'. Однако я не могу заставить этот код работать на стороне сервера, когда я пытаюсь получить доступ к этой части API:
app.get('/ping', (req, res) => {
return res.send('pong')
})
Когда я обращаюсь к URL-адресу с помощью '/ ping', он просто дает мне пустой экран без слова «понг». Однако в сборке stati c я использую BrowserRouter, который отлично назначает URL-адрес странице, когда я открываю '/ rooms / id' в URL-адресе:
function App() {
return (
<BrowserRouter>
<Switch>
<Route path="/" exact component={CreateRoom} />
<Route path="/room/:roomID" component={Room} />
</Switch>
</BrowserRouter>
);
}
Это код на стороне клиента конфликтует с моим серверным кодом? Как еще мне получить API для обслуживания моих материалов на стороне клиента и на стороне сервера в одном источнике?