包含文件时node.js上的引用错误

我是node.js新手。 我有两个文件。 他们是index.jsdb.js

我的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", }); 

在运行节点index.js的时候,我收到了error

device = new Device({

  ^ 

ReferenceError:设备未定义。

但将以下内容插入到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(); 

为什么我得到错误?

如果你想从db模块中得到其他模块可以访问的东西,你需要使用module.exports来暴露它

添加到您的db.js文件的末尾:

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

然后在你的index.js你可以这样做:

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

你可以在这里阅读更多关于它

node.js将每个文件视为一个模块。 所以要将任何源文件包含到另一个源文件中,您需要在源端将其导出,并在导入文件中使用require将其导入。