包含文件时,node.js上的参考错误 [英] Reference error on node.js while include file

查看:51
本文介绍了包含文件时,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",
});

在这里,我在运行 node index.js

时得到了error

设备=新设备({

            ^

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

您可以在此处了解更多信息

I'm new to node.js. i have two files. they are index.js and db.js

my index.js is

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

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

device.save();

my db.js is

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

here i'm getting the error while running node index.js

device = new Device({

            ^

ReferenceError: Device is not defined.

but while inserting the following into db.js itself. It worked fine. it does the 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();

why i'm getting the error?

解决方案

if you want something from the db module to be accessible in other modules, you need to expose it, by using module.exports

add to the end of your db.js file:

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

and then in your index.js you can do:

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

you can read more about it here

这篇关于包含文件时,node.js上的参考错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆