Как я могу обслуживать 2 разные папки, используя экспресс (клиент и админ) - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать админ-панель для моего приложения node.js.Моя текущая структура папок выглядит следующим образом:

client (folder)
  images (folder)
  fonts (folder)
  index.html
  index.css
  index.js

app.js (node.js server code)
package.json

Я хочу, чтобы в этом корне была еще одна папка, похожая на эту:

admin (folder)
  index.html
  index.css
  index.js

Наличие только 2 строк экспресс-кода в моем узлеПриложение .js (см. ниже), я попробовал первую «логическую» вещь.

app.use(express.static(path.join(__dirname, 'client')))
app.use(express.static(path.join(__dirname, 'admin')))

app.get('/admin', (req, res) => res.sendFile(`${__dirname}/admin/index.html`))
app.get('*', (req, res) => res.sendFile(`${__dirname}/client/index.html`))

Но это, очевидно, не работает, выдает странную ошибку в строке index.html 1, что «<»это недопустимый символ или что-то в этом роде, поэтому он поврежден. </p>

Код:

app.use(express.static(path.join(__dirname, 'client')))

app.get('*', (req, res) => res.sendFile(`${__dirname}/client/index.html`))

Это действительно весь код, который я сейчас использую в Express, и, честно говоря, я даже не знаюочень хорошо понимаюВся маршрутизация выполняется на стороне клиента, и на данный момент она прекрасно работает.

Я пытаюсь выполнить то, к чему бы ни направлялся пользователь, он перенаправляется в мое клиентское приложение,и интерфейсный маршрутизатор делает все остальное (IE localhost: 8080 / или localhost: 8080 / ps4 / games ...).Но если я захожу на localhost: 8080 / admin, и только в этом случае я хочу обслуживать админ-панель, откуда я могу войти в систему и управлять своими продуктами, пунктами меню, отвечать на сообщения в чате и т. Д.

Спасибо!

1 Ответ

0 голосов
/ 01 февраля 2019

Вы можете заменить эти 4 строки вашего кода:

app.use(express.static(path.join(__dirname, 'client')))
app.use(express.static(path.join(__dirname, 'admin')))

app.get('/admin', (req, res) => res.sendFile(`${__dirname}/admin/index.html`))
app.get('*', (req, res) => res.sendFile(`${__dirname}/client/index.html`))

на эти:

app.use('/', express.static(__dirname +'/client'));
app.use('/admin', express.static(__dirname +'/admin'));

Встроенные функции вышеупомянутого экспресса позволяют вам размещать статические файлы с путем, который выхочу.Вы можете найти более подробную информацию о размещении статических файлов в документации экспресса по адресу http://expressjs.com/en/starter/static-files.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...