Jquery- błąd -wczytywanie innego pliku w Node.js

0

Chodzi o to że nie mogę wczytać jquery,
w inspekcji, zamiast pliku jquery, widać stronę błędu(jest to strona errorPage.ejs którą używam, jeśli nie znalazłem żadnego dopasowanie w routinguapp.use('*', error))
No i nie mam pojęcia co zrobić, błąd występuje tylko w tym projekcie.

4p.png

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <link href="/styles.css" rel="stylesheet" />
    </head>
    <body>
        <h2>Jesteś zalogowany jako <%= login %></h2>

            <div id="chat-window">
                <div id="output"></div>
                <img src="<%= typeof file != 'undefined' ? file: '' %>" class="img-responsive" alt="">
                <div id="feedback"></div>
            </div>
            <input id="handle" type="text" placeholder="Handle" />
            <input id="message" type="text" placeholder="Message" />
            <button id="send">Send</button>
        </div>

        <div clss="container">
          <h1>File Upload</h1>

          <%= typeof msg != 'undefined'? msg: '' %>

           <div class="file-field">
             <div class="filebutton">Send Image<input type="file" id="imagefile" accept="image/*"></div>
             <button value="" class="send">Submit</button>
           </div>
        </div>

    <script src="./node_modules/jquery/dist/jquery.js"></script>
    <script src='sda.js'></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js"></script>
    <script src='/chat.js'></script>

    </body>
</html>

var express = require('express');
var socket = require('socket.io');
const session = require('express-session');
const cookieParser = require('cookie-parser');
const path = require('path');
var app = express();

var main = require('./routes/routeMain'),
    loginIn = require('./routes/routeLoginIn'),
    error = require('./routes/routeError.js');

app.use(express.static('public'));
app.use(express.static('routes'));
app.use(express.static('node_modules'));
app.use(session({secret: 'aSecret',maxAge: 10000})); 
app.use(cookieParser());
app.set('view engine', 'ejs');
app.set('views','./views');
//#################################################################################
app.use('/', main);
app.use('/loginIn', loginIn);
app.use('*', error);
//#################################################################################

var server = app.listen(4000, function(){
    console.log('nasluchuje na porcie 4000');
});
//#################################################################################

var io = socket(server);

io.on('connection', (socket) => {

    socket.on('chat', function(data){
        io.sockets.emit('chat', data);
    });

    socket.on('typing', function(data){
        socket.broadcast.emit('typing', data);
    });

    socket.on('untyping', function (data) {
      socket.broadcast.emit('untyping', '');
    });

    socket.on('imagefile', function (data) {
      socket.broadcast.emit('userImage', data)
    });

});

0

Zdaje się, że Express próbuje uruchamiać Twoje jquery.js tak, jak gdyby była to zwyczajna część Twojej strony (a nie plik, który powinien zaserwować).

Dlaczego próbujesz wczytać jQuery ręcznie z node_modules, zamiast zrobić po prostu import / require w JSie?

0

no więc tak, nie bardzo rozumiem dlaczego mam tak zrobić ale zrobiłem...
'npm install jquery''i w pliku sda.js mam:

var $ = require('jquery');
/* tak tez nie dziala:
var jsdom = require('jsdom').jsdom
  , myWindow = jsdom().createWindow()
  , $ = require('jquery')
  , jq = require('jquery').create()
  , jQuery = require('jquery').create(myWindow)
  ;
*/
$(document).ready(function () {
  alert('efds');
});
$(document).ready(function () {
  alert('efds');
});

załączyłem do html,

    <script src='./sda.js'></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js"></script>
    <script src='/chat.js'></script>
    </body>

i dalej to samo, plik sda.js po otawrciu w zasobniku w przeglądarce to moja strona błędu.
Kiedyś tam jak zainstalowałem w node_modules był dostępny pod adresem ./node_modules/jquery/dist/ i wystarczyło dodać w html, że go używam <script>

fsa.zip
Dodałem cały projekt? Pomoże ktoś? bo nie wiem co jest nie tak

1 użytkowników online, w tym zalogowanych: 0, gości: 1