voiys
voiys

Reputation: 299

Express js app.use() not working properly?

Alright guys, I've been following the fcc node js tutorial for beginners. I have trouble getting the use() function from the express framework to work. I followed all the steps (I've copied exactly what he's doing), but when I open the Chrome/Firefox debug console my I can see my folders are not swapped for the alias I've set (is 'static' instead of 'public'). For anyone wondering, I'm stuck on this part -> https://youtu.be/-FV-moMWRSA?t=230.

my code:

const path = require('path');
const express = require('express');
const app = express(); //this function returns an object with many functions

app.use('/public', express.static(path.join(__dirname, 'static')));
app.get('/',
(req, res) => {
  res.sendFile(path.join(__dirname, 'static', 'index.html'));
});

app.listen(3000);

my html:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="/static/css/main.css">
  <script src="/static/js/main.js"></script>
</head>
<body>
  <p>Test paragraph</p>
</body>
</html>

anyone know what's going on?

Upvotes: 0

Views: 1600

Answers (1)

Hemant Parashar
Hemant Parashar

Reputation: 3774

You have wrong paths in your html. Since you're using /public in your middleware, only requests with /public will be looked in the static folder to see if a filewith the requested name exists or not.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="/public/css/main.css">
  <script src="/public/js/main.js"></script>
</head>
<body>
  <p>Test paragraph</p>
</body>
</html>

Hope this helps !

Upvotes: 1

Related Questions