2016-04-05 4 views
4

Я новичок в node.js. У меня два файла. они index.js и db.jsИсходная ошибка на node.js while include file

моего index.js является

var connection = require('./db.js'); 

device = new Device({ 
    id: 93, 
    name: 'test1' 
}); 

device.save(); 

моего db.js является

var mysql  = require('mysql2'); 
var mysqlModel = require('mysql-model'); 

var appModel = mysqlModel.createConnection({ 
    host  : 'localhost', 
    user  : 'root', 
    password : 'root', 
    database : 'db', 
}); 

var Device = appModel.extend({ 
    tableName: "DeviceTable", 
}); 

здесь я получаю error во время бега узла index.js

device = new Device({

  ^

ReferenceError: Device is not defined.

, но при этом вставьте следующее в db.js. Он работал нормально. он делает insert.

var mysql  = require('mysql2'); 
var mysqlModel = require('mysql-model'); 

var appModel = mysqlModel.createConnection({ 
    host  : 'localhost', 
    user  : 'root', 
    password : 'root', 
    database : 'db', 
}); 

var Device = appModel.extend({ 
    tableName: "DeviceTable", 
}); 

var device = new Device({ 
    id: 93, 
    name: 'test1' 
}); 

device.save(); 

Почему я получаю сообщение об ошибке?

ответ

4

если вы хотите что-то из модуля БД должны быть доступны в других модулях, необходимо подвергать его, используя module.exports

добавить в конце вашего db.js файла:

module.exports = { 
    appModel : appModel, 
    Device : Device 
}; 

, а затем в вашем index.js вы можете сделать:

device = new connection.Device({ 
    id: 93, 
    name: 'test1' 
}); 

вы можете прочитать больше об этом here

2

node.js рассматривает каждый файл как модуль. поэтому, чтобы включить любой исходный файл в другой, вам нужно экспортировать его в конец исходного кода и импортировать его, используя require в файле импорта.