如何使用Sails从控制器传递到视图

时间:2017-10-02 21:08:56

标签: node.js sails.js

我阅读了sails文档,显然我正在做正确的但我一直在未定义
我的模特:

module.exports = {
schema:true,
conection:'NodeSailsMsSql',
tableName:'contactos',
autoUpdatedAt: false,
autoCreatedAt:false,

attributes: {

nombre:{
  type:'string',
  required:true
},
telefonocel:{
  type:'int'
},
telefonocasa:{
  type:'int'
},
telefonotrabajo:{
  type:'int'
},
correo:{
  type:'string',
  email:true
},
idtipocontacto:{
  type:'integer',
  required:true
}

}
};

我的控制器

agregar: function(req,res,next){
Contactos.create(req.allParams(),function contactosagregados(err, contactos) 
{
  if(err)return next(err);
  res.redirect('contactos/mostrarcontactos/'+contactos.id);
});
},
mostrarcontactos: function(req,res,next){
Contactos.query('select * from contactos where id='+('id'),function 
contactosencotrados(err, contactos) {
  if(err)return next(err);
  if(!contactos) return next();
  res.view({
    contacto:contactos
  });
});
},

查看

<h1><%= contacto.id %></h1>
<hr>
<h3>Correo:<%= contacto.Correo %></h3>
<h3>Nombre: <%= contacto.Nombre %></h3>

如果我调试数据是在contacto上的控制器上,但是在传递给视图时数据会丢失。

1 个答案:

答案 0 :(得分:0)

在您的查询中,您似乎要求记录其中id为字面'id'的记录。我认为你必须要以某种方式从请求中获取id?也许是这样的:

mostrarcontactos: function(req,res,next){
  var inputId = req.param('id');
  Contactos.query('select * from contactos where id=' + inputId, function contactosencotrados(err, contactos) {
    // you should check what your result looks like. With .query that depends on which database you are using
    sails.log(contactos);
    if(err) {return next(err);}
    if(!contactos) {return next();}
    res.view({
      contacto:contactos
    });
  });

},

尝试一下,并确保您尝试在视图中访问的属性与检索到的数据contactos上的属性相匹配。