最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Node.js,Express,MongoDB堆栈:希望响应保持在同一页面上

IT培训 admin 6浏览 0评论

Node.js,Express,MongoDB堆栈:希望响应保持在同一页面上

我使用Node和Express编写了一个单页应用程序。这个页面有几个部分,每个部分都有一个表格。我将每个表单中的数据发布到Mongo,但是希望找到保留在同一页面上的响应,而不刷新页面。这是我的路由器代码:

/* POST data to visitorSessionsTest collection */

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

    // Set internal DB variables
    var db = req.db;

    // Get form values.
    var questionId = req.body.questionId;
    var visitorData = req.body.visitorData;

    // Set collection
    var collection = db.get('visitorSessionsTest');

    // Submit to the DB
    collection.insert({
        "questionId" : questionId,
        "visitorData" : visitorData
    }, function (err, doc) {
        if (err) {
            // If it failed, return error
            res.send("There was a problem adding the information to the database.");
        } 
        else {
            // what can go here?

        );
        }
    });
}); 

更好的方法是让响应将innerHTML写入该页面上相应部分的div,以反映收集的数据。

更新客户端代码从Jade开始,但相关部分相当于一系列带有输入的表单,如下所示:

<form id="data-submit" name="datasubmit" method="post" action="/datasubmit">
<button name="visitorData" value="16" type="submit" onclick="showMessage(0)">16</button>
....
回答如下:

听起来你想要阅读一下RESTful API的内容;这种事情有很多常见的方法,不是特定于节点的。

也就是说,我在你的位置做的是发送一个201(“创建”)响应,以及创建的对象的副本,包括稍后导航到它所需的任何内容(例如,如果你的GET路由是基于的ID)在对象ID上)。

res.status(201).send({id:doc._id, whatever:else, you:want});

Node.js,Express,MongoDB堆栈:希望响应保持在同一页面上

我使用Node和Express编写了一个单页应用程序。这个页面有几个部分,每个部分都有一个表格。我将每个表单中的数据发布到Mongo,但是希望找到保留在同一页面上的响应,而不刷新页面。这是我的路由器代码:

/* POST data to visitorSessionsTest collection */

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

    // Set internal DB variables
    var db = req.db;

    // Get form values.
    var questionId = req.body.questionId;
    var visitorData = req.body.visitorData;

    // Set collection
    var collection = db.get('visitorSessionsTest');

    // Submit to the DB
    collection.insert({
        "questionId" : questionId,
        "visitorData" : visitorData
    }, function (err, doc) {
        if (err) {
            // If it failed, return error
            res.send("There was a problem adding the information to the database.");
        } 
        else {
            // what can go here?

        );
        }
    });
}); 

更好的方法是让响应将innerHTML写入该页面上相应部分的div,以反映收集的数据。

更新客户端代码从Jade开始,但相关部分相当于一系列带有输入的表单,如下所示:

<form id="data-submit" name="datasubmit" method="post" action="/datasubmit">
<button name="visitorData" value="16" type="submit" onclick="showMessage(0)">16</button>
....
回答如下:

听起来你想要阅读一下RESTful API的内容;这种事情有很多常见的方法,不是特定于节点的。

也就是说,我在你的位置做的是发送一个201(“创建”)响应,以及创建的对象的副本,包括稍后导航到它所需的任何内容(例如,如果你的GET路由是基于的ID)在对象ID上)。

res.status(201).send({id:doc._id, whatever:else, you:want});
发布评论

评论列表 (0)

  1. 暂无评论