不能在 NodeJs 中要求 class 吗?
Cannot require a class in NodeJs?
我有两个文件:
mysqlDAOFactory.js:
var mysql = require('mysql');
var mysqlUserDAO = require('./mysqlUserDAO');
var mysqlSessionDAO = require('./mysqlSessionDAO');
class mysqlDAOFactory {
static createConnection() {
var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'QASys'
});
return connection;
}
static getDbInstance() {
return mysql;
}
getUserDAO() {
return new mysqlUserDAO();
}
getSessionDAO() {
return new mysqlSessionDAO();
}
}
module.exports = mysqlDAOFactory;
mysqlUserDAO.js:
var mysqlDAOFactory = require('./mysqlDAOFactory.js');
var bcrypt = require('bcryptjs');
var preparedStatements = require('./preparedStatements');
class mysqlUserDAO {
constructor() {
this.connection = mysqlDAOFactory.createConnection();
this.mysql = mysqlDAOFactory.getDbInstance();
}
}
module.exports = mysqlUserDAO;
当我运行文件test.js:
var mysqlDAOFactory = require('./mysqlDAOFactory.js');
var UserDAO = mysqlDAOFactory.getUserDAO();
程序无法识别mysqlUserDAO.js中class的构造函数中的变量mysqlDAOFactory,虽然我之前需要这个变量。
谁能向我解释为什么会这样?
results in chrome debugger tool
我查看了你的 cod,你犯了循环依赖的错误,因为你没有运行一个代码。
因为你没有post MySQL session 文件,所以我临时注释了mysqlSession文件。
请查看 运行ning 示例,然后也请查看 link。
https://repl.it/@DipakC/SO-50542396cannot-require-a-class-in-nodejs
test.js:
//var mysqlDAOFactory = require('./mysqlDAOFactory');
const mysqlUserDAO = require("./mysqlUserDAO");
let objMysqlUserDAO = new mysqlUserDAO();
console.log("---- ---- ----");
console.log(objMysqlUserDAO);
console.log("---- ---- ----");
mysqlUserDAO.js
var mysqlDAOFactory = require('./mysqlDAOFactory');
var bcrypt = require('bcryptjs');
class mysqlUserDAO {
constructor() {
this.connection = mysqlDAOFactory.createConnection();
this.mysql = mysqlDAOFactory.getDbInstance();
}
}
module.exports = mysqlUserDAO;
mysqlDAOFactory.js
var mysql = require('mysql');
var mysqlUserDAO = require('./mysqlUserDAO');
//var mysqlSessionDAO = require('./mysqlSessionDAO');
class mysqlDAOFactory {
static createConnection() {
var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'QASys'
});
return connection;
}
static getDbInstance() {
return mysql;
}
static getUserDAO() {
return new mysqlUserDAO();
}
/* getSessionDAO() {
return new mysqlSessionDAO();
} */
}
module.exports = mysqlDAOFactory;
我有两个文件:
mysqlDAOFactory.js:
var mysql = require('mysql');
var mysqlUserDAO = require('./mysqlUserDAO');
var mysqlSessionDAO = require('./mysqlSessionDAO');
class mysqlDAOFactory {
static createConnection() {
var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'QASys'
});
return connection;
}
static getDbInstance() {
return mysql;
}
getUserDAO() {
return new mysqlUserDAO();
}
getSessionDAO() {
return new mysqlSessionDAO();
}
}
module.exports = mysqlDAOFactory;
mysqlUserDAO.js:
var mysqlDAOFactory = require('./mysqlDAOFactory.js');
var bcrypt = require('bcryptjs');
var preparedStatements = require('./preparedStatements');
class mysqlUserDAO {
constructor() {
this.connection = mysqlDAOFactory.createConnection();
this.mysql = mysqlDAOFactory.getDbInstance();
}
}
module.exports = mysqlUserDAO;
当我运行文件test.js:
var mysqlDAOFactory = require('./mysqlDAOFactory.js');
var UserDAO = mysqlDAOFactory.getUserDAO();
程序无法识别mysqlUserDAO.js中class的构造函数中的变量mysqlDAOFactory,虽然我之前需要这个变量。 谁能向我解释为什么会这样?
results in chrome debugger tool
我查看了你的 cod,你犯了循环依赖的错误,因为你没有运行一个代码。
因为你没有post MySQL session 文件,所以我临时注释了mysqlSession文件。
请查看 运行ning 示例,然后也请查看 link。 https://repl.it/@DipakC/SO-50542396cannot-require-a-class-in-nodejs
test.js:
//var mysqlDAOFactory = require('./mysqlDAOFactory');
const mysqlUserDAO = require("./mysqlUserDAO");
let objMysqlUserDAO = new mysqlUserDAO();
console.log("---- ---- ----");
console.log(objMysqlUserDAO);
console.log("---- ---- ----");
mysqlUserDAO.js
var mysqlDAOFactory = require('./mysqlDAOFactory');
var bcrypt = require('bcryptjs');
class mysqlUserDAO {
constructor() {
this.connection = mysqlDAOFactory.createConnection();
this.mysql = mysqlDAOFactory.getDbInstance();
}
}
module.exports = mysqlUserDAO;
mysqlDAOFactory.js
var mysql = require('mysql');
var mysqlUserDAO = require('./mysqlUserDAO');
//var mysqlSessionDAO = require('./mysqlSessionDAO');
class mysqlDAOFactory {
static createConnection() {
var connection = mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'QASys'
});
return connection;
}
static getDbInstance() {
return mysql;
}
static getUserDAO() {
return new mysqlUserDAO();
}
/* getSessionDAO() {
return new mysqlSessionDAO();
} */
}
module.exports = mysqlDAOFactory;