Как я могу связать свой express сервер с созданным каталогом dist? - PullRequest
0 голосов
/ 13 июля 2020

Я получаю сообщение об ошибке «TypeError: путь должен быть абсолютным или указать root в res.sendFile»

root
  -dist
      |--index.html
      |--index_bundle.js
 
  -src
    |-server
        |-server.js

//server.js
    var path = require('path')
    const express = require('express')
    const bodyParser = require('body-parser')
    const cors = require('cors')

    const app = express()

    let dataStorage = {};

    app.use(cors())
    app.use(bodyParser.json())
    app.use(bodyParser.urlencoded({
      extended: true
    }))

    app.use(express.static('dist'))

    app.listen(8081, function(){
      console.log('Server running on port 8081!')
    })

    app.get('/', function (req, res) {
        res.sendFile('../dist/index.html')    //need help setting this up
    })


    app.post('/formHandler', function(req, res){
    //post to dataStorage here
    })

Я пытаюсь запустить сервер express, а также использую webpack-dev-server для горячей перезагрузки. У меня возникли проблемы с настройкой пути к сгенерированному файлу dist.

Я могу просто запустить webpack-dev-server без express, и тогда файл заработает.

Спасибо

1 Ответ

1 голос
/ 13 июля 2020

Вы можете получить к нему доступ, обслуживая его содержимое как express stati c.

const path = require('path');

app.use(express.static(path.resolve(__dirname, '../../dist'));

Вы также можете определить путь, по которому статические ресурсы могут быть доступны следующим образом

app.use('/', express.static(path.resolve(__dirname, '../../dist'));

Так как в вашей папке dist уже есть файл index.html, он будет отображаться по умолчанию при посещении пути / в вашем браузере. Не нужно указывать в запросе файл index.html URL

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