Как использовать объект модели в другом файле, созданном в узле orm

Модель, созданная для пользователя в 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;   
 });

Теперь я хочу использовать этот объект пользовательской модели в patu.js, но он не позволяет использовать методы для объекта пользователя. так как использовать объект модели в другом файле, созданном в узле orm. следующий файл это 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));            

    });     

1 ответ

Решение

Следуя документации, вы хотите что-то вроде этого.

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));

        });
    });

});

Или если вы используете экспресс.

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);
    });
});
Другие вопросы по тегам