我正在创建一个基本的朋友请求功能。这是我正在处理的功能之一,当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
答案 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]);
});