ajax发布到node.js表达app?

exp*_*oob 2 javascript ajax node.js express

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

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

这是我的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' 
            }
  });
});
Run Code Online (Sandbox Code Playgroud)

^^这部分工作正常.它来自样板,我可以去localhost看看头版.

下一部分应该是mongo插入发生的地方.这给了我一个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);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

我要做的是将对象stuff插入testCollection.

现在我得到404/db /

我确定这是非常错误的.我不认为我应该使用server.on,server.get也不起作用.请指教,谢谢.

Ivo*_*zel 6

您必须使用server.post,因为您正在通过jQuery 执行POST请求.

server.on将向服务器添加一个事件监听器,在这种情况下为不存在的/db/事件添加,它永远不会被任何东西触发.

请花点时间并确保阅读express.js 指南,Node.js API文档也可能派上用场.