在服务器和客户端之间传递数据(node.js + mongodb)

时间:2012-08-03 10:24:42

标签: javascript node.js mongodb express pug

我正在使用node.js express和mongodb,我有来自客户端的输入数据,我需要将数据传递给服务器查找其属性并发送到另一页面的客户端。

现在我遇到了req.body.age的问题,它假定从客户端的输入中获取数据并使用find()来获取其相应的属性。

服务器端代码:

函数在另一个.js文件中路由

exports.find_user = function(req, res) {
    res.render('find_user.jade');
};


exports.user = function(req, res){
    member = new memberModel();
    member.desc.age = req.body.age; //problem
    console.log(req.body.age);  //undefined 
    memberModel.find({desc: {age: '7'}}, function(err, docs){
        res.render('user.jade', { members: docs });
    console.log(docs);
});
};

memberModel.find({desc: {age: '7'}}只需硬盘代码即可获得7岁(工作)的用户

客户端代码(jade):

数据输入页面:

find_user.jade

form(action='/', method='post')
    fieldset
        lable(for="age") Find user by age: 
            input(type="text", size="30", name="age", required="required")
            input(type='button', value='Find', onclick='location.href=\'find_user/user/\'')

数据输出页面及其属性:

user.jade

        tr
            th Name
            th Age
    tbody
    - members.forEach(function(member){
        tr
            td= member['name']
            td= member['desc']
     - });

1 个答案:

答案 0 :(得分:0)

当用户单击按钮时,您没有在find_user.jade文件中提交数据。相反,客户端仅重定向到另一个页面。

这就是你的find_user.jade文件的样子:

form(action='find_user/user/', method='post')
    fieldset
        label(for="age") Find user by age: 
            input(type="text", size="30", name="age", required="required")
            input(type='submit', value='Find', name="submit")