javascriptnode.jsnode-orm2

how to use model object in other file created in node orm


model created for user in user.js

var orm = require("orm");

orm.connect("mysql://root:@localhost/axi_timescape", function (err, db)  {
  if (err) throw err;

    var user = db.define("axi_users", {
        name           : String,
        id             : Number,
        enterprise_id  : Number,
        location_id    :  Number, 
        email          : String,
        pin            : Number,
        job_description: String,
        password        :String,
        role            :Number,
        designation     :String,
        department_id   :Number,
        created         :String,    
        updated         :String,
 });
 module.exports.user=user;   
 });

now i want to use that user model object in patu.js but it does not allow to use methods on user object. so how to use model object in other file created in node orm. the following file is patu.js.

var orm = require('orm');
var user= require('./user.js');

exports.list = function(req, res){
  res.send('respond with a resource');
};


 user.find({ id: 2 }, function (err, people) {     //VIEW BY ID
         if(err)
           {
             console.log(err);
              return;
              }

                 console.log("asad");


          console.log(JSON.stringify(people));            

    });     

Solution

  • Following the documentation, you want something like this.

    user.js

    module.exports = function(db, callback) {
        db.define("axi_users", {
            name: String,
            id: Number,
            enterprise_id: Number,
            location_id: Number,
            email: String,
            pin: Number,
            job_description: String,
            password: String,
            role: Number,
            designation: String,
            department_id: Number,
            created: String,
            updated: String,
        });
    
        return callback();
    }
    

    patu.js

    var orm = require("orm");
    orm.connect("mysql://root:@localhost/axi_timescape", function(err, db) {
        if (err) throw err;
    
        db.load('./user.js', function(err) {
            if (err) throw err;
    
            var user = db.models.axi_users;
    
            user.find({
                id: 2
            }, function(err, people) { //VIEW BY ID
                if (err) {
                    console.log(err);
                    return;
                }
    
                console.log("asad");
    
    
                console.log(JSON.stringify(people));
    
            });
        });
    
    });
    

    Or if you're using express.

    var express = require('express');
    var orm = require('orm');
    var app = express();
    
    app.use(orm.express("mysql://root:@localhost/axi_timescape", {
        define: function(db, models) {
            models.user = db.define("axi_users", {
                name: String,
                id: Number,
                enterprise_id: Number,
                location_id: Number,
                email: String,
                pin: Number,
                job_description: String,
                password: String,
                role: Number,
                designation: String,
                department_id: Number,
                created: String,
                updated: String,
            });
        }
    }));
    app.listen(80);
    
    app.get("/", function(req, res) {
        req.models.user.find({
            id: 2
        }, function(err, people) { //VIEW BY ID
            if (err) {
                console.log(err);
                return;
            }
            res.send(people);
        });
    });