Загрузка файла из Expressr с помощью React Router - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть этот маршрут на моем сервере. Js

app.get('/api/users/download/:id', auth, admin, (req, res) => {
  const file = path.resolve(".") + `/uploads/${req.params.id}`;
    res.download(file)
})

И это часть моего компонента в React (с использованием CRA)

class AddFile extends Component {
          showFileList = () => (
                this.state.files ?
                    this.state.files.map((item,i)=>(
                        <li key={i}>
                            <Link to={`/api/users/download/${item}`} target="_blank">
                                {item}
                            </Link>
                        </li>
                    ))
                :null
            )
}

    render() {
        return (
          <div>
             {this.showFileList()}
           </div>
          );
    }
export default AddFile;

Эти тезисы являются некоторыми из моих маршрутов

const Routes = () => {
  return(
    <Layout>
      <Switch>
        <Route path="/admin/add_file" exact component={Auth(AddFile, true)}/>
        <Route component={Auth(PageNotFound)}/>
      </Switch>
    </Layout>
  )
}

Когда я нажимаю на элемент li, он ведет меня по маршруту 404 not found, когда он должен привести меня к маршруту, с которым я работаю в Express, и загружать файл, НО явно перехватываетсяСначала отреагируйте на маршрутизатор и отобразите созданную мной страницу «Не найдено». Может ли это быть что-то, связанное с прокси в package.json?

  "proxy": "http://localhost:5000"

Спасибо!

1 Ответ

0 голосов
/ 22 ноября 2018

Некоторое тестирование (https://codesandbox.io/s/8ykx3j88v0) показывает, что вы можете использовать

  • <Link to="/some-file" download target="_self">..</Link>
  • обычный <a href="/some-file" download>...</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...