Rocky
Rocky

Reputation: 431

got confused in loopback

hello guys i m new to loopback so please, can anyone help me with this following this 1. i know how to render html page from loopback server for eg:-

<form method="post" action="register">
 <input type="text" name="name">
 <input type="text" name="lastname">
</form>

how to can request name or lastname in my model user

'use strict';
module.exports = function(User) {

 // how i can receive requested of name or lastname for eg :- 
 console.log(req.name)
};

2.how i can insert this data to my postgres table(table name :-register) in column "name" 3.last one is that how to differentiate table name and model name using automigrate

Upvotes: 1

Views: 109

Answers (1)

Lorenzo Canavaggio
Lorenzo Canavaggio

Reputation: 331

module.exports = function(User) {
    User.show = function(name,lastName) {
      console.log(name);
      console.log(lastName);
    }

    User.remoteMethod('show', {
          accepts: [
                  { arg: 'name', type: 'string' },
                  { arg: 'lastName', type: 'string' }
              ],
          returns: {arg: 'result', type: 'string'}
    });
}

for the insert something like :

var yourVar = name;
pg.connect(dbUrl, function(err, client, done) {
    client.query(
        'INSERT into yourTable(name) VALUES ($1)', 
        ['title'], 
        function(err, result) {
            if (err) {
                console.log(err);
            } else {
                console.log('row inserted');
            }
        });        
});

depending on your table and log credentials

Edit :

to use auto migrate, you must first :

create a data source in /server/datasources.json :

"mydb": {
    "name": "mydb",
    "connector": "postgresql"
}

Connect to UNIX domain socket in /var/run/postgresql/.s.PGSQL.5432 :

{
    "postgres": {
        "host": "/var/run/postgresql/",
        "port": "5432",
        "database": "dbname",
        "username": "dbuser",
        "password": "dbpassword",
        "name": "postgres",
        "debug": true,
        "connector": "postgresql"
    }
}

define your models in /common/models/model.json, it shoud look like this :

var schema={
    "name": "User",
    "options": {
        "idInjection": true,
        "postgresql": {
            "schema": "yourShema",
            "table": "USER"
        }
     },
     "properties": {
     "id": {
         "type": "Number",
         "required": true,
         "length": 64,
         "precision": null,
         "scale": null,
         "postgresql": {
             "columnName": "id",
             "dataType": "integer",
             "dataLength": 64,
             "dataPrecision": null,
             "dataScale": null,
             "nullable": "NO"
         }
     },
     "name": {
         "type": "String",
         "required": false,
         "length": 40,
         "precision": null,
         "scale": null,
         "postgresql": {
             "columnName": "name",
             "dataType": "character varying",
             "dataLength": 40,
             "dataPrecision": null,
             "dataScale": null,
             "nullable": "YES"
         }
     },
     "lastName": {
         "type": "String",
         "required": false,
         "length": 40,
         "precision": null,
         "scale": null,
         "postgresql": {
             "columnName": "lastName",
             "dataType": "character varying",
             "dataLength": 40,
             "dataPrecision": null,
             "dataScale": null,
             "nullable": "YES"
      }
    }
}

then you must call Model.automigrate() or Model.autoupdate() in your code like this :

ds.createModel(schema);
ds.autoupdate(schema) {
    ds.discoverModelProperties('USER', function (err, props) {
        console.log(props);
    });
});

You will certainly have yo change some things but I hope you will achieve what you want ;)

Upvotes: 1

Related Questions