私はNode.js-Express.js-Mongooseアプリケーションで作業しています。 html形式(EJSファイル)でユーザーの詳細(名前と年齢)を受け入れ、データベースに保存して(mongooseを使用して)、追加されたユーザーの詳細をWebページに表示します。 私は同じもののためにAJAXを使用しています。使用されるファイルは以下のとおりです。Mongooseを使用してフロントエンドJavascriptからデータベースにデータを挿入できません
userview.ejs(フォームが含まれています) - >frontend.js(jqueryのを使用しています) - >users.js(定義されたアドオン()関数を呼び出し、[ファイル] - ルータ) - >userController.js(下記添付) - >userService.js(DB操作を実行する)。
実際には、新しいユーザーが作成されますが名前は表示されません。
データベースにPEEKは空白のエントリのIDのみが追加されることを示しています。
FRONTEND.js
console.log('Frontend Reached');
$(document).ready(function() {
var url = '/users/delete_user';
var user_url = '/users/add_user';
function load_users(e) {
$.ajax({
url: 'userview.ejs',
dataType: 'text',
type: 'post',
ContentType: 'html',
data: $('#user_form').serialize(),
success: function(data, textStatus, jQxhr) {
console.log(data);
$('#list').html(data);
//$('#user_form').submit(load_users);
},
error: function(jqXhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
e.preventDefault();
}
//これは、このファイルのuserController.js コンソールのログであるUSER
$(document).on('click', '.btn btn-success', function(e) {
e.preventDefault();
var user_name = $("#nameinput").val();
var user_age = $("#ageinput").val();
console.log(user_name);
console.log(user_age);
$.ajax({
url: 'userview.ejs',
dataType: 'text',
type: 'post',
ContentType: 'html',
data: {
'user_name': user_name,
'user_age': user_age
},
success: function(data, textStatus, jQxhr) {
console.log(data);
load_users();
},
error: function(jqXhr, textStatus, errorThrown) {
console.log(errorThrown);
}
});
e.preventDefault();
}); //onclick
}); //document ready
を追加したレコードが未定義であることを示しています。
var User = require('../models/usermodel.js');
var userService = require('../services/userService');
var userController = {
add: function(request, response) {
var user_name = request.body.user_name;
var user_age = request.body.user_age;
console.log(user_name); //SHOWS UNdEFINED
var newUser = new User({
name: user_name,
age: user_age
});
console.log(newUser);
//var userName = request.body.user_name;
//var userAge = request.body.user_age;
userService.add(newUser, function(err, added) {
if (err != null) {
response.send(500);
} else {
response.send(200);
}
});
},
delete: function(request, response) {
var userId = request.body.user_id;
userService.delete(userId, function(err, deleted) {
if (err != null) {
response.send(500);
} else {
response.send(200);
}
});
}
};
module.exports = userController;
どのようなエラーがありますか?何が問題ですか?何が起こるはずですか?実際に何が起こるのですか?これが疑問を投げかけており、あなたからは欠けています。質問を改善するには、[mcve](https://stackoverflow.com/help/mcve)を参照してください。 –
フロントエンドからmongodbに直接データを追加しようとしていますか?私はその理由を見つけることができません!開いている(保護されていない)DBがあるか、フロントエンドに資格情報を格納する必要があります(フロントエンドに何も隠すことができないので、かなりオープンなDBを意味します)。それはないです。 – Mort
@NeilLunn私は必要な変更を加えました。他に何かが必要な場合は教えてください。 –