Javascript 如何在Node.JS中正确编写模块?
因此,我正试图做到这一点,这样当我可以将连接和runQuery函数放在一个文件中,并且只需要放在另一个文件中时,我就不必有多个数据库连接。下面是我的“mysql.js”文件中的内容 以下是我希望在我的文件中要求它的方式:Javascript 如何在Node.JS中正确编写模块?,javascript,node.js,Javascript,Node.js,因此,我正试图做到这一点,这样当我可以将连接和runQuery函数放在一个文件中,并且只需要放在另一个文件中时,我就不必有多个数据库连接。下面是我的“mysql.js”文件中的内容 以下是我希望在我的文件中要求它的方式: const { connection, runQuery } = require('./functions/mysql') 我这样做对吗?我对整个模块都不熟悉。我一直在尝试分割我的文件,因为一个包含3000多行的index.js是疯狂的。谢谢你的帮助。不,你做得不对。您所做的
const { connection, runQuery } = require('./functions/mysql')
我这样做对吗?我对整个模块都不熟悉。我一直在尝试分割我的文件,因为一个包含3000多行的index.js是疯狂的。谢谢你的帮助。不,你做得不对。您所做的是将其导出为默认值,但您希望导出命名函数。你可以这样做:
const mysql = require("mysql");
let connection = mysql.createConnection({
host: "81.19.215.6",
user: "voltclou_site",
password: "yogO{6,F@8WS",
database: process.env.database
});
connection.connect(function(err) {
if (err) {
console.error("[DATABASE] Error connecting: " + err.stack);
return;
}
console.log("[DATABASE] Connected as id " + connection.threadId);
});
async function runQuery(query, values) {
return new Promise((resolve, reject) => {
connection.query(query, values, function(error, results) {
if (error) return reject(error);
return resolve(results);
});
});
}
module.exports = {
connection,
runQuery
};
不,你做得不对。您所做的是将其导出为默认值,但您希望导出命名函数。你可以这样做:
const mysql = require("mysql");
let connection = mysql.createConnection({
host: "81.19.215.6",
user: "voltclou_site",
password: "yogO{6,F@8WS",
database: process.env.database
});
connection.connect(function(err) {
if (err) {
console.error("[DATABASE] Error connecting: " + err.stack);
return;
}
console.log("[DATABASE] Connected as id " + connection.threadId);
});
async function runQuery(query, values) {
return new Promise((resolve, reject) => {
connection.query(query, values, function(error, results) {
if (error) return reject(error);
return resolve(results);
});
});
}
module.exports = {
connection,
runQuery
};
您描述的值,
{connection,runQuery}
,应该是分配给模块的值。exports
:
const mysql = require('mysql');
let connection = mysql.createConnection({ ... });
connection.connect(...);
let runQuery = async (query, values) => { ... };
module.exports = { connection, runQuery };
如果您在其他地方只需要
运行查询
,那么您甚至可能不需要导出连接
您描述的值,{connection,runQuery}
,应该是分配给模块的值。exports
:
const mysql = require('mysql');
let connection = mysql.createConnection({ ... });
connection.connect(...);
let runQuery = async (query, values) => { ... };
module.exports = { connection, runQuery };
如果您在其他地方只需要
运行查询
,那么您甚至可能不需要导出连接
不,您需要删除当前的module.exports=function(){。将此正文保持在顶级..}
并在文件底部添加module.exports={connection,runQuery}代码>请注意,您已经在此处共享了登录详细信息。如果该密码在任何地方使用,我建议您现在更改它。感谢您的提醒,我刚刚更改了该帐户的密码。不,您需要删除当前的module.exports=function(){。将此正文保持在顶级..}
并在文件底部添加module.exports={connection,runQuery}代码>请注意,您已经在此处共享了登录详细信息。如果该密码在任何地方使用,我建议您立即更改。谢谢提醒,我刚刚更改了该帐户的密码。