发出帖子请求时,Jquery ajax请求响应404

时间:2017-07-27 00:33:10

标签: javascript jquery node.js ajax express

我正在创建一个基本的朋友请求功能。这是我正在处理的功能之一,当Ajax发送它显示404的发布请求时。如果我将代码直接放在server.js文件中,但我正在尝试组织代码,这是有效的。有解决方案吗谢谢!

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'); });

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
            */
         })
     });
 } // 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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我的app.post()中没有看到回复 所以它将是404(未找到)。

当您找到用户时,您可以回复某些内容。
例如,“成功”消息和朋友列表。

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