如何在nodejs中打开新页面并显示用户数据

时间:2017-08-08 18:00:57

标签: node.js redirect

您好我是nodejs的新手,我正在尝试重定向到新页面,以便在点击编辑按钮时显示单个记录。我不确定路线是如何运作的。 如果我浏览到: http://localhost:1337/我看到一张包含所有用户的表格。我添加了一个列编辑,但是当我单击编辑时,我正在尝试运行一个找到一条记录的函数,然后打开这个页面:localhost:1337 / userInfo。

如果我只是浏览到:localhost:1337 / userInfo,那么我会看到与http://localhost:1337/中相同的表,因为它链接到global.js文件,其中包含所有代码。所以我不确定这个路由是如何工作的,以及如何在编辑时转到userInfo页面,只查看global.js中函数的单个记录。下面是一些代码:

users.js

router.get('/findOneUser/:id', function (req, res) {

var db = req.db;
var id = req.params.id;
var reg = new RegExp(id)
var collection = db.get('userlist');
ccollection.find({ '_id': { $regex: reg }}, function (e, docs) {
    res.json(docs);
});

});

global.js

function populateTable(newuser) {

// Empty content string
var tableContent = '';
Json = '/users/userlist';

//Compile getJSON Statement
if (newuser !== '' ) {


    Json = '/users/findUser/' + newuser;

}


// jQuery AJAX call for JSON
$.getJSON(Json, function (data){
    // Stick our user data array into a userlist variable in the global object
    userListData = data;
    // For each item in our JSON, add a table row and cells to the content string
    $.each(data, function () {
        //Get the date from MongoDB and convert to local format
        var dt = new Date(this.DOB).toLocaleDateString();

        tableContent += '<tr>';
        tableContent += '<td><a href="#" class="linkshowuser" rel="' + this.username + '">' + this.username + '</a></td>';
        tableContent += '<td>' + this.email + '</td>';
        tableContent += '<td>' + dt + '</td>';
        tableContent += '<td><a href="#" class="linkdeleteuser" rel="' + this._id + '">delete</a></td>';
        tableContent += '<td><a href="#" class="linkupdateuser" rel="' + this._id + '">edit</a></td>';
        tableContent += '</tr>';
    });

    // Inject the whole content string into our existing HTML table
    $('#userList table tbody').html(tableContent);
});

};

1 个答案:

答案 0 :(得分:0)

首先,您的users.js内有拼写错误 它意味着

var collection = db.get('userlist');
collection.find({ '_id': { $regex: reg }}, function (e, docs) {
    res.json(docs);
});

如果您只想找到一个结果,可以使用

// Of course, I assume you're using Mongoose
var collection = db.get('userlist');
collection.findOne({ '_id': { $regex: reg }}, function (e, docs) {
    res.json(docs);
});

关于你的前端,你甚至不能给edit按钮一个链接

$.getJSON(Json, function (data){
    // Stick our user data array into a userlist variable in the global object
    userListData = data;
    // For each item in our JSON, add a table row and cells to the content string
    $.each(data, function () {
        //Get the date from MongoDB and convert to local format
        var dt = new Date(this.DOB).toLocaleDateString();

        tableContent += '<tr>';
        tableContent += '<td><a href="#" class="linkshowuser" rel="' + this.username + '">' + this.username + '</a></td>';
        tableContent += '<td>' + this.email + '</td>';
        tableContent += '<td>' + dt + '</td>';
        tableContent += '<td><a href="#" class="linkdeleteuser" rel="' + this._id + '">delete</a></td>';
        tableContent += '<td><a href=/findOneUser/'+ this._id +' class="linkupdateuser" rel="' + this._id + '">edit</a></td>';
        tableContent += '</tr>';
    });

    // Inject the whole content string into our existing HTML table
    $('#userList table tbody').html(tableContent);
});