2017-07-27 24 views
0

私は基本的な友達リクエスト機能を作成しています。これは、私が働いている関数の1つです.Ajaxが404のポストリクエストを送信したときに、server.jsファイルにコードを直接置いてもコードは整理しようとしています。どんな解決策ですか?ありがとう!投稿リクエストを行うときにJquery ajaxリクエストレスポンスを送信

client.pugは、ユーザーが電子メールを使って、友人を追加すると、AJAXリクエストを作成し、

$('#addFriend').on('click', function(ev) { 
ev.preventDefault(); 
var searchByEmail = $('#searchByEmail').val(); 
$.ajax({ 
    type: 'POST', 
    url: '/add', 
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8', 
    data: { 
     email: searchByEmail 
    }, 
    success: function(data) { 
     console.log('success'); 
    } 
}); 
document.getElementById("searchByEmail").value = ""; 
$('#userModal').modal('hide'); }); 

コントローラ/ friend.js

const express = require('express'); 
const app = express(); 
const User = require('../models/user'); 
const bodyParser = require('body-parser'); 

var friendRequest = function() { 
    app.post('/add', function(req, res) { 
     var requestToEmail = req.body.email; 
     console.log(requestToEmail); 
     User.findOne({ 
      email: requestToEmail 
     }, function(err, email) { 
      if (!email) { 
       console.log('cannot find the email', err); 
       return res.send(err); 
      } 
      /* 
      Add into database 
      Display the friend list 
      */ 
     }) 
    }); 
} // End friend request 

module.exports = friendRequest; 

server.jsには、モジュール

を使用して提出するヒット
const friendInvite = require('./controllers/friend'); 
app.use('/friend', friendInvite); 

ファイル構造

- server.js 
- controllers 
    - friend.js 
- views 
    - client.pug 
+0

.htaccessには/ addが定義されていますか?あなたはdomain.com/addにリクエストしていますが、ファイル構造上に関連するファイルやフォルダは表示されません。 – Slavez

答えて

0

あなたのアプリで応答が表示されませんでした。
これで404(見つからない)になります。

ユーザーを見つけたら、何かに反応することができます。
たとえば、「成功」メッセージとフレンドリスト。

app.post('/add', function(req, res) { 
    res.json(['success', friend list]); 
}); 
1

以下のようにcontrollers/friend.js上のコードを変更してみてください。

const express = require('express'); 
const app = express(); 
const User = require('../models/user'); 
const bodyParser = require('body-parser'); 

var friendRequest = function() { 
app.post('/add', function(req, res) { 
    var requestToEmail = req.body.email; 
    console.log(requestToEmail); 
    User.findOne({ 
     email: requestToEmail 
    }, function(err, email) { 
     if (!email) { 
      console.log('cannot find the email', err); 
      return res.send(err); 
     } 
     /* 
     Add into database 
     Display the friend list 
     */ 

     //add this response to client side 
     res.json({ 'status': '200', 'desc': 'Success' }); 
    }) 
    }); 
} // End friend request 

module.exports = friendRequest; 

あなたは、データが保存されている場合に署名されたものをクライアント側への応答を送信する必要があります。 ここでスニペットコードをチェックすることができます: https://github.com/egin10/node_mongoose/blob/master/routes/student.js

関連する問題