How to create a simple html server using express js
Solution 1
If you're just trying to serve static files from a directory called "public", you might have luck with an app like this:
var path = require('path');
var express = require('express');
var app = express();
var staticPath = path.join(__dirname, '/public');
app.use(express.static(staticPath));
app.listen(3000, function() {
console.log('listening');
});
You'll need to make sure Express is installed. You'll probably run npm install express --save
in the same directory as the above JavaScript file. Once you're all ready, you'll run node the_name_of_the_file_above.js
to start your server.
Solution 2
first install express module inspite of express-generator
npm install express
try this removing public
var express = require('express');
var app = express();
app.use('/', express.static(__dirname));
app.listen(3000, function() { console.log('listening')});
it is working fine.
Solution 3
This problem shouldn't even need any code or frameworks; install http-server from npm, navigate to the folder in the command prompt and run this command:
http-server
And it will spin up a lightweight http server and serve static content up from the folder immediately which can be viewed using http://localhost
Zsoca
Updated on June 21, 2020Comments
-
Zsoca about 4 years
I'm new in node.js I want to create a simple express.js static file server, but I have some issues. I have been installed express.js 4.2 globally like this:
npm install -g express-generator
I have this code in httpsrv.js:
var http = require('http'); var express = require('express'); var app = express(); app.use('/', express.static(__dirname + '/public')); app.listen(3000, function() { console.log('listening')});
I'm not sure is it ok I guess it is not enough, but I cant run it it's failed with error: cannot find module 'express'.
I want to create a simple http server which can serve from specific folder("\public" e.g.) and I'm using .html language. I found on the internet a many bullshit, I don't want to use this .jade thing and I don't want to create a empty web app with express etc. I want express.js http server which can operate like Apache and can serve a static html pages first from a specified folder. Can anybody help me on this, suggest a good article which is explain a step by step, because I'm beginner.
-
Zsoca almost 10 yearsNow it almost good, but when I start the server and try to see in the browser, I get this message: "Cannot GET / ". I guess its only something path problem. My javascript server file is placed in the same "/public" directory what I want to serve is it a problem?
-
Dan about 8 yearsChange it to
path.join(__dirname, '/public')
-
Jitendra Pancholi over 7 yearshow to run the app on https and http both?
-
Evan Hahn over 7 years@JitendraPancholi It depends, but you can use the built-in
https
module to do this. Happy to find an example if you want more guidance. -
Jitendra Pancholi over 7 yearsThanks I did it now.
-
gaitat over 7 yearsyou are not even answering the question.
-
garryp over 7 yearsHis/her requirement was to set up a simple server to serve static pages from a folder; this package does exactly that. You don't need to use a framework like Express for this purpose.