$ Undefined on (Node + Express + Pug + JQuery) - PullRequest
       2

$ Undefined on (Node + Express + Pug + JQuery)

0 голосов
/ 15 сентября 2018

Вопрос новичка наверняка, но я был бы признателен за любую помощь, так как я полностью застрял (то есть я перепробовал все, что смог найти, но безуспешно). Когда я пытаюсь использовать Jquery, я получаю «ReferenceError: $ не определено». Моя структура проекта:

bin/www public javascripts stylesheets routes index.js views layout.pug ... app.js

layout.pug, где я пытаюсь загрузить CDN jquery:

    doctype html
html(lang='en')
  head
    meta(charset='utf-8')
    title= title
    //- bootstrap CSS
    link(rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'
    integrity='sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u' crossorigin='anonymous')
    link(rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css')

    //- my Styling CSS
    link(rel='stylesheet', href='/stylesheets/style.css')

  body

    block content
    script(src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js")
    script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous")
    script(src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js'
          integrity='sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa' crossorigin='anonymous')

    script(src='/javascripts/jquery-3.3.1.js')
    script(src='routes/index.js')

Мой файл index.js имеет следующий вид:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function (req, res, next) {
  res.render('index', { title: 'Express' });
});

$(function () {
  alert('JavaScript Loaded!');
});

module.exports = router;

Наконец, в моем файле app.js есть несколько соответствующих строк:

const indexRouter = require('./routes/index');
const app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

// Set Static Paths
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 15 сентября 2018

Я думаю, что вы не знаете, server-side-rendering против client-side-rendering.

Expressjs равно server-side-rendering.поэтому вы не вызываете jQuery в index.js

Если вы вызываете jQuery, вы делаете это.var $ = require('jQuery');

ссылка: https://www.npmjs.com/package/jQuery#nodejs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...