2017-07-27 159 views
0

我正在创建基本的好友请求功能。这是我正在工作的功能之一,当Ajax发送发布请求时,它显示404。它的工作原理是,如果我直接将代码放在server.js文件中,但我试图组织代码。任何解决方案谢谢!Jquery ajax请求响应404发送邮件请求时

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

Is/add定义在.htaccess上吗?您正在请求访问您的domain.com/add,但我无法在您的文件结构中看到任何相关的文件或文件夹。 – Slavez

回答

0

我没有在你的app.post()中看到响应
所以它会是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