gpt4 book ai didi

javascript - 如何在node js中模块化代码

转载 作者:行者123 更新时间:2023-11-30 08:00:54 24 4
gpt4 key购买 nike

我是 Node 新手。我做了一个示例应用程序,我在一个文件 server.js 中完成了所有代码

var express = require('express'),
nconf=require('nconf');
var app = express()
nconf.env().file({ file: 'db-config.json'});
app.use(express.static(__dirname+"\\client"));
var dbConfig = nconf.get();
console.log();
var mysql = require('mysql');
var connection = mysql.createConnection({
host: dbConfig.hostname,
port: dbConfig.port,
user: dbConfig.user,
password: dbConfig.password,
database: dbConfig.db
});

app.get('/', function (req, res) {
res.sendFile(__dirname+"\\client\\index.html");
})
app.get('/getTables', function (req, res) {
var sql="SELECT table_name as text from information_schema.tables where table_schema = ?";
connection.query(sql,[dbConfig.db],function(err,rows,fields){
if(!err){
var data={

"children":[]
};
for(var i=0;i<rows.length;i++){
rows[i].leaf=true;
data.children.push(rows[i]);
}
res.json(data);
}else{
console.log("db not connected");
}

});

})
var server = app.listen(3000, function () {

var host = server.address().address
var port = server.address().port

console.log('Example app listening at http://%s:%s', host, port)

})

我想知道如何将我所有的 mysql 配置代码写在一个文件中并在任何我想使用的地方使用。我想在另一个文件中编写客户端响应创建。

最佳答案

我记得有两种方法可以从其他模块导出方法或对象:

  1. module.exports
    使用:

//yourModule.js

function method1(){    
}

要导出此函数,我们可以执行以下操作:

module.exports = method1;

在这种情况下,当您将使用 var myModule = require("./yourModule") - myModule 将是 method1,即要调用它,您只需调用 myModule()

或者您可以像这样导出:

module.exports = { 
method1: method1,
method2: ...
}

在这种情况下,当您像上述情况一样使用 require 来调用您需要键入的函数时:myModule.method1();

  1. 第二种方式是直接使用:

exports.method1 = function (){};exports.method2 = function (){};exports.someObject = {};

这将与:

module.exports = { 
method1: method1,
method2: ...
}

Reference

附言因为您使用的是 express js,所以我建议您在控制台中输入:npm install express-generator -g这将为您创建具有初始结构的模板项目。所有文件夹,如路由、 View 、javascripts 等。

关于javascript - 如何在node js中模块化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com