#jquery #node.js
#jquery #node.js
Вопрос:
У меня были некоторые files ( html, css, js
), развернутые на сервере Apache Tomcat. В HTML-файле используются следующие известные библиотеки.
<script src="libs/external/jquery/dist/jquery.min.js"></script>
<link rel="stylesheet" href="libs/external/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="libs/external/bootstrap-select/dist/css/bootstrap-select.min.css" />
<script src="libs/external/popper.js/dist/umd/popper.min.js"></script>
<script src="libs/external/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="libs/external/bootstrap-select/dist/js/bootstrap-select.min.js"></script>
Теперь я хочу, чтобы одно и то же приложение обслуживалось через Node JS Server
.
Я новичок в node.
Я создал app.js
файл и выполнил следующие основные действия
var http = require('http'),
url = require('url'),
fs = require('fs');
var createServerCallback = function (req, res) {
let url_parts = url.parse(req.url);
let filePath = url_parts.pathname;
let extension = '';
let contentType = 'text/html';
if (filePath == '/') {
filePath = '/index.html';
}
if (url_parts.pathname.lastIndexOf(".") !== -1) {
extension = url_parts.pathname.substring(url_parts.pathname.lastIndexOf("."));
switch (extension) {
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
}
}
let path = "." filePath;
fs.readFile(path, function (err, data) {
res.writeHead(200, { 'Content-Type': contentType });
res.end(data);
});
};
http.createServer(createServerCallback).listen(8010, 'localhost');
console.log('Server running.');
Структура выглядит следующим образом-
index.html
это основной файл, который внутренне ссылается на описанные выше скрипты, которые хранятся в libs
папке.
Все работало хорошо, но теперь я получаю Uncaught ReferenceError: $ is not defined
.
Поскольку jquery
код в index.js будет выполняться в окне браузера, какое это node
имеет к этому отношение?
Комментарии:
1. Похоже, вы обращаетесь к своему процессу узла. Вместо этого переключитесь на консоль вашего браузера, и у вас будет доступ к jQuery.
Ответ №1:
Поскольку код jquery в index.js будет выполняться в окне браузера, какое отношение к этому имеет узел?
Посмотрите на командную строку, которую вы выполняете в своей IDE.
Вы явно загружаете index.js
с Node.js !
Возможно, вы нажали какую-то кнопку или комбинацию клавиш «Debug this JS file» в вашей IDE, и она настроена на обработку файлов JS в Node.js .
Вместо этого загрузите HTML-документ в свой браузер (после запуска Node.js программа, запустив app.js
с Node.js вместо index.js
того , чтобы .