POST后的节点/快速重定向

时间:2016-09-27 14:31:38

标签: javascript node.js mongodb datatables

我有一个Express post路由,根据从DataTables Editor内联字段发送给它的数据更新mongo db。到目前为止这么好,数据库正在更新。在更新查询成功执行之后它落空的地方然后我想重定向回原始页面。 Node控制台似乎表明正在调用原始页面的GET路由,但页面本身不会加载。

POST功能的代码如下:

router.post('/edit', function(req,res){
var theKeys = _.keys(req.body);
var theMeat = theKeys[1];
var bits1 = theMeat.split("][");
// this is the updated value
var newVal = req.body[theMeat];
// this is the row _id 
var cleanId = bits1[0].replace("data[row_","");
// this is the field to update
var cleanRow = bits1[1].replace("]","");
// cast the id string back to an ObjectId
var updId = new ObjectId(cleanId);

var query = {};

query[cleanRow] = newVal;

var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/gts';
MongoClient.connect(url, function(err, db){
    if(err){
        console.log("Error connecting to the server", err);
    }else{
        //console.log("Connected for Edit");

        var collection = db.collection('events');
        collection.updateOne({"_id":updId},{$set:query},function(err,result){
            if(err){
                console.log("Error adding message", err);
            }else if(result){
                //console.log("Update attempted", result.result);
                res.redirect('/admin');
            }else{
                console.log("Unknown error");
            }
        });
    }
  });
});

直接调用时,GET路由工作正常,但在这样调用时似乎停止了。

我很确定POST路由中没有任何内容导致这种情况,因为当我删除除重定向本身以外的所有内容时会发生同样的事情。

router.post('/test',function(req,res){

    res.redirect('/admin');

});

请帮忙!

0 个答案:

没有答案