我正在创建一个基本的好友请求功能。这是我正在开发的功能之一,当 Ajax 发送 post 请求时,它显示 404。如果我将代码直接放在 server.js 文件中,它就可以工作,但我正在尝试组织代码。有什么解决办法吗?谢谢!
当用户使用电子邮件添加 friend 并点击提交时,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'); });
Controller /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
最佳答案
尝试更改 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
关于javascript - jquery ajax请求响应404,当发出post请求时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45339491/