2016-08-28 13 views
0

だから、私はExpressを初めて使う人です。私はセッションやAJAXの呼び出しで困惑していますが、問題は私が私のアプリを実行するたびに、私のjqueryは何らかの理由で動作しないということです。これは私が持っているコードです:jQueryがExpress JSで動作していない - NodeJS

app.jsので

var express = require("express"); 
var mongoose = require("mongoose"); 
var bodyParser = require("body-parser"); 
var session = require('express-session') 

var app = express(); 
app.use(express.static("public")); // I understand this is the directory where I would need to put all my static files: css, js, images, etc. 
app.set("view engine", "jade"); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({extended: true})); 

//Set secre pass for the session 
app.use(session({secret:'password'})); 


app.get("/",function(req, res){ 

    if(req.session.userName){ 
     res.render("admin", {session_name: req.session.userName}); 
    }else{ 
     res.render("home"); 
    } 

}); 

app.post("/example-ajax", function(req, res){ 
    res.send(req.body.email); // return the email that was sent by the client 
}); 

app.post("/log-in", function(req, res){ 
    req.session.userName = req.body.name; 
    res.redirect("/"); 
}); 

app.get("/log-out", function(req, res){ 
    req.session.destroy(); 
    res.redirect("/"); 
}); 

app.listen(8080); 

admin.jade

extends layout_head.jade 
block content 
    div(class="container") 
     div(class="row") 
      div(class="col-lg-6 col-lg-offset-3") 
       h1 Logged In!! 
       h3 Logged in as: #[b #{session_name}] 
       a(href="/log-out") Log Out 
       br 
       div(class="btn btn-info testAjax") Test Ajax 

    script(src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js") 
    script(href="/css/bootstrap/js/bootstrap.min.js") 
    script(href="/js/main.js") 

main.js

$(document).ready(function(){ 
    alert("Loaded"); 

    $(".testAjax").on("click", function(){ 
     alert("test"); 

     $.ajax({ 
      type: 'POST', 
      url: '/example-ajax', 
      data: { 
       email: "[email protected]" 
      }, 
      success: function(data){ 
       // data = the email being returned from the server 
       console.log("Your email is: " + data); 
      } 
     }); 
    }); 

}); 

私の言ったように、ページが読み込まれるたびに、またはtestAjaxボタンをクリックすると、jqueryは実行されません。コンソールをチェックすると、エラーが出ることはありません。そのため、問題の原因がわかりません。

私の2番目の質問は、これはExpressでajaxコールを行う正しい方法ですか?

ご協力いただきまして誠にありがとうございます。ありがとう。

+4

スクリプトsrcとスクリプトhref? jqueryがロードされたように見えますが、他のスクリプトはありません –

+0

@ArtemGorlachev Haha WOW私はそれが見えなかったとは思えません!ご意見ありがとうございます。それは今働いている。私はそれを受け入れることができるように答えを書くべきです。 –

答えて

1

スクリプトタグでhrefをsrcに変更するだけで済みました。

関連する問題