NodeJS:如何将数据导入视图?

时间:2015-02-13 13:24:06

标签: node.js express mongoose

如何在视图中从模型中获取单个数据?

这是我的控制器:

router.get('/edit/:id', isAuthenticated, function(req, res)
    {
        File.find({_id:req.params.id}, function(err, files){

            if(err) 
                return console.error(err.stack);

            if(!files) 
                return console.error("File not found!");

            res.render('edit', { user: req.user, files: files});

        });

    });

你看,我根据他的身份

获取一个独特的数据

在我看来,我得到的数据(文件)如下:

each file in files
            div.row
                div.col-sm-6.col-md-6
                    form(action='/edit', class='form-upload', enctype='multipart/form-data', method='post')
                        .form-group
                            label(class='control-label') Position
                            input(type='text', name='order', class='form-control input-lg', value='#{file.order}')
                        .form-group
                            label(class='control-label') Nom du fichier
                            input(type='text', name='name', class='form-control input-lg', value='#{file.name}')
                        .form-group
                            label(class='control-label') Délai
                            input(type='text', name='delay', class='form-control input-lg', value='#{file.delay}')

问题:如何避免each file in files并直接致电files.name

1 个答案:

答案 0 :(得分:1)

如果您希望模型返回对象而不是数组,请改用findOne

router.get('/edit/:id', isAuthenticated, function(req, res) {
    File.findOne({
        _id: req.params.id
    }, function(err, file) {
        if (err)
            return console.error(err.stack);
        if (!file)
            return console.error("File not found!");
        res.render('edit', {
            user: req.user,
            file: file
        });
    });
});

只需添加,element(class="className")可以缩短为element.className

.row
    .col-sm-6.col-md-6
        form.form-upload(action='/edit', enctype='multipart/form-data', method='post')
            .form-group
                label.control-label Position
                input.form-control.input-lg(type='text', name='order', value='#{file.order}')
            .form-group
                label.control-label Nom du fichier
                input.form-control.input-lg(type='text', name='name', value='#{file.name}')
            .form-group
                label.control-label Délai
                input.form-control.input-lg(type='text', name='delay', value='#{file.delay}')