Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
80
rated 0 times [  83] [ 3]  / answers: 1 / hits: 32324  / 9 Years ago, wed, october 21, 2015, 12:00:00

I've started studing Node JS.



So here is my files.



index.html



<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id=app>
<h1>Hello<h1>
</div>
<script src='assets/bundle.js'></script>
</body>
</html>


app.js



var http = require(http),
path = require('path')
fs = require(fs),
colors = require('colors'),
port = 3000;

var Server = http.createServer(function(request, response) {
var filename = path.join(__dirname, 'index.html');

fs.readFile(filename, function(err, file) {
if(err) {
response.writeHead(500, {Content-Type: text/plain});
response.write(err + n);
response.end();
return;
}

response.writeHead(200);
response.write(file);
response.end();
});
});

Server.listen(port, function() {
console.log(('Server is running on http://localhost:'+ port + '...').cyan);


webpack.config.js



module.exports = {
entry: './src/index.js',
output: {
path: __dirname + '/assets',
filename: 'bundle.js'
}
}


UPDATE
bundle.js



/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};

/******/ // The require function
/******/ function __webpack_require__(moduleId) {

/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;

/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };

/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

/******/ // Flag the module as loaded
/******/ module.loaded = true;

/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }


/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;

/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;

/******/ // __webpack_public_path__
/******/ __webpack_require__.p = ;

/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports) {

alert('Hello');

/***/ }
/******/ ]);


So, when i hit a app.js and visit the address (localhost:3000) i get the error in console.




bundle.js:1 Uncaught SyntaxError: Unexpected token <




Also my JS file doesnt run.
Could someone suggest something to fix it?



Thanks in advance


More From » node.js

 Answers
34

Your server:




var Server = http.createServer(function(request, response) {
var filename = path.join(__dirname, 'index.html');



… is configured to ignore everything in the request and always return the contents of index.html.



So when the browser requests /assets/bundle.js it is given index.html (and errors because that isn't JavaScript).



You need to pay attention to the path and serve up appropriate content, with the appropriate content type.



This would probably be best done by finding a static file serving module (Google turns up node-static) for Node (or replacing Node with something like Lighttpd or Apache HTTPD).



If you want to serve up dynamic content as well as static content, then Express is a popular choice (and has support for static files).


[#64656] Monday, October 19, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
maxh

Total Points: 137
Total Questions: 100
Total Answers: 103

Location: Kazakhstan
Member since Mon, Sep 26, 2022
2 Years ago
maxh questions
Tue, May 18, 21, 00:00, 3 Years ago
Mon, Jan 4, 21, 00:00, 3 Years ago
Mon, Nov 23, 20, 00:00, 4 Years ago
;