我正在尝试在使用AJAX插入数据库之前进行身份验证

$('#button').click(function () {       
  $.post('/db/', { 
   stuff: { "foo" : "bar"}
  }, callback, "json");
});

这是我的node.js代码:

server.get('/', function(req,res){
console.log(res);
  res.render('index.ejs', {
    locals : { 
              header: '#Header#'
             ,footer: '#Footer#'
             ,title : 'Page Title'
             ,description: 'Page Description'
             ,author: 'Your Name'
             ,analyticssiteid: 'XXXXXXX' 
            }
  });
});

^^此部分正常。它来自一个样板,我可以去Localhost并查看首页。

下一部分应该是蒙哥插入发生的地方。这给了我404。

server.on('/db/', function(req,res){
    console.log(req);
    console.log(res);
    var db = new mongo.Db( 'dbname' , new mongo.Server( 'localhost', 20003, {}), {});   
    db.open(function (err) {
        db.collection('testCollection', function (err, collection) {
            collection.insert(res.stuff);
        });
    });
});

我要做的是插入对象 stuff 进入测试收获。

现在,我在 /db /上获得404

我敢肯定这是非常错误的。我认为我不应该使用server.on,server.get也不起作用。请建议,谢谢。

有帮助吗?

解决方案

你必须使用 server.post, ,因为您正在做 邮政 通过jQuery请求。

server.on 将在不存在的情况下将事件侦听器添加到服务器中 /db/ 事件,从来没有被任何事物触发。

请花点时间确保阅读express.js 指导, ,node.js API文档 也可能会派上用场。

其他提示

由于您期望发表帖子,因此您的 / DB /处理程序应在 server.post 方法。您将获得404,因为服务器没有为POST和 /DB /组合定义的路由。

您还应该对数据库连接进行身份验证,并且不应在每个请求上重新连接到DB

var db = new mongo.Db( 'dbname' , new mongo.Server( 'localhost', 20003, {}), {});
db.authenticate(user, password, function({ // callback }));

server.post('/db/', function(req,res){
  db.open(function (err) {
    db.collection('testCollection', function (err, collection) {
      collection.insert(. . .);
    });
  });
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top