How to use different collection in different page in nodeJS



  • Hi,

    Brief details of what is required:

    I have index.html page and index.js file under router. I am showing data from one collection say 'x' on page index.html. All the code related to router.get/post is done in index.js file.

    There is a button 'SubText' on index.html, m applying aggregation for search and storing output in new collection. Till here, everything is working fine.

    Now my requirement is when user clicks on 'SubText' button, after new collection, it should take it to different html page and show data from newly created collection.

    Please can anybody suggest/guide how to do this?

    Please find below the coder:

    Index.js

    var createGroups = function (db, callback) { var pipeline = [ { $match: { $text: { $search: "Error" } } }, {

        $project: {
            _id: 0,
            procPath: 1,
            bkgroundInfo: 1,
            "result": { $cond: { if: { $gte: [{ $indexOfCP: ["$bkgroundInfo", "Error"] }, 0] }, then: { $substrCP: ["$bkgroundInfo", { $indexOfCP: ["$bkgroundInfo", "Error"] }, 140] }, else: "Not Found" } }
        }
    },
    {
        "$out": "SKSNodeColl"
    }
    

    ]
    db.aggregate(pipeline).toArray(function (err, result) {
    //assert.equal(err, null);
    console.log(result);
    callback(result);
    });
    };

    router.get('/newColl', function (req, res, next) { MongoClient.connect(url, { useNewUrlParser: true }, function (err, client) { if (err) { console.log(err); throw err; } var db = client.db("mydb"); var collection = db.collection("Users"); console.log("Mongo Connection - New Collection"); createGroups(collection, function (err, result) { console.log("newCollection Created"); var userdetails = path.join(__dirname, "/../views/userdetails.html"); console.log(userdetails); client.close();
    res.sendFile(userdetails);
    }); });
    });

    =====================
    Index.html

    <a href="/newColl"><input type="button" id="resultMatch" value="PatternMatchingResult" tabindex="1"></a>

    userdetails.html //page where I want to show data from new collection.(included ptrnSearch.js in this file in head section: )

    <form id="form1" name="form1" method="post" action="/fetch">
    <input type="hidden" name="id" value="" id="id" />
    <table border="1">
    <tbody>
    <tr>
    <th> ID </th>
    <th> Procedure Path </th>
    <th> Background Description </th>
    <th> Error Pattern </th>
    </tr>
    {% if (data.length) %}
    {% for item in data %}
    <tr>
    <td> {{item['_id']}} </td>
    <td> {{item['procPath']}} </td>
    <td> {{item['bkgroundInfo']}} </td>
    <td> {{item['result']}} </td>
    </tr>
    {% endfor %}
    {% endif %}
    </tbody>
    </table>
    </form>

    ptrnSearch.js //added to userdetails.html page

    router.get('/', function (req, res) { MongoClient.connect(url, function (err, client) { if (err) { throw err; } var db = client.db("mydb"); db.collection('SKSNodeColl').find({}).toArray(function (err, docs) { if (err) { throw err; } res.render('userdetails.html', { data: docs }); client.close(); }); }); });

    ==============================
    Many Thanks


 

Suggested Topics

| |