Update doc server example to work from any directory (#1988)

* Node.js serving with absolute path

It’s safer to use the absolute path of the directory that you want to serve, in case you run the express app from another directory.

* Update README.md
This commit is contained in:
Igor Ramos
2017-04-18 20:38:07 -05:00
committed by Joe Haddad
parent a0c37ca4ff
commit 144f03b114

View File

@@ -1240,10 +1240,10 @@ const express = require('express');
const path = require('path');
const app = express();
app.use(express.static('./build'));
app.use(express.static(path.join(__dirname, 'build')));
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, './build', 'index.html'));
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
app.listen(9000);
@@ -1262,11 +1262,11 @@ If you use routers that use the HTML5 [`pushState` history API](https://develope
This is because when there is a fresh page load for a `/todos/42`, the server looks for the file `build/todos/42` and does not find it. The server needs to be configured to respond to a request to `/todos/42` by serving `index.html`. For example, we can amend our Express example above to serve `index.html` for any unknown paths:
```diff
app.use(express.static('./build'));
app.use(express.static(path.join(__dirname, 'build')));
-app.get('/', function (req, res) {
+app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, './build', 'index.html'));
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
```