#ajax #node.js #mongodb
#ajax #node.js #mongodb
Вопрос:
Я успешно размещаю вставку AJAX в своей базе данных MondoDB.
Предполагается, что пользователь должен заполнить 3 поля,
- Полное имя
- Электронная почта
- Телефон
Что я хотел бы сделать, так это:
сгенерируйте случайное число на стороне сервера и сохраните его как 4-е поле в моем MongoDB.
Также я хотел бы опубликовать его в качестве ответа пользователю.
Вот мой users.js файл (на стороне сервера)
* POST to adduser.
*/
router.post('/adduser', function(req, res) {
var db = req.db;
var codeResponse = generateCode();
db.collection('userlist').insert(req.body, function(err, result){
res.send(
(err === null) ? { msg: '',code: codeResponse } : { msg: err }
);
});
});
function generateCode(){
var code = Math.random() *1000000;
code = Math.floor(code);
return code;
}
И это мой вызов AJAX (на стороне клиента)
var newUser = {
'id2': id2,
'fullname': $('#addUser fieldset input#inputUserFullname').val(),
'email': $('#addUser fieldset input#inputUserEmail').val(),
'phone': $('#addUser fieldset input#inputUserPhone').val(),
}
$.ajax({
type: 'POST',
data: newUser,
url: '/users/adduser',
dataType: 'JSON'
}).done(function( response ) {
// Check for successful (blank) response
if (response.msg === '') {
console.log(response);
}
else {
alert('Error: ' response.msg);
}
});
Комментарии:
1. Какую ошибку или непреднамеренный результат вы получаете?
Ответ №1:
Достаточно просто, добавьте его в свой объект перед вставкой и отправкой обратно объекта:
router.post('/adduser', function(req, res) {
var db = req.db;
var document = req.body;
var codeResponse = generateCode();
document.code = codeResponse;
db.collection('userlist').insert(document, function(err, result){
if (err) //do something
return;
else
res.send(document);
});
});