我是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配置代码,并在任何我想要的地方使用。我想在另一个fie中编写客户端响应。
答案 0 :(得分:5)
我记得有两种方法可以从其他模块中导出方法或对象:
module.exports
//yourModule.js
function method1(){
}
要导出此功能,我们可以执行以下操作:
module.exports = method1;
在这种情况下,当您使用var myModule = require("./yourModule")
时,myModule
将为method1
,即要拨打电话,您只需拨打myModule()
。
或者您可以输出:
module.exports = {
method1: method1,
method2: ...
}
在这种情况下,当您使用上述情况中的require来调用函数时,您需要输入:myModule.method1();
exports.method1 = function (){};
exports.method2 = function (){};
exports.someObject = {};
,这将与:
相同module.exports = {
method1: method1,
method2: ...
}
<强> Reference 强>
P.S。因为您正在使用快速js,我建议您输入控制台:npm install express-generator -g
这将为您创建具有初始结构的模板项目。所有文件夹,如路线,视图,javascripts等。
答案 1 :(得分:1)
使用require
:
var someModule= require('./myModule');
修改:
在此处阅读node.js模块:http://nodejs.org/api/modules.html#modules_modules
答案 2 :(得分:0)
您可以为DB模块编写api,并在主文件中需要此模块。
var mysql = require('mysql');
...
connect = function (dbConfig) {
mysql.createConnection({
host: dbConfig.hostname,
port: dbConfig.port,
user: dbConfig.user,
password: dbConfig.password,
database: dbConfig.db
});
};
select = 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 myDBAPI = require('./myDBAPI');
app.get('/', function (req, res) {
res.sendFile(__dirname+"\\client\\index.html");
});
app.get('/getTables', myDBAPI.select(req, res));
PS:别忘了;在说明之后
答案 3 :(得分:0)
您可以使用环境变量来设置服务器和数据库参数。
使用node-env-file
模块从.env文件加载此设置:
dev.env
DATABASE_URL=localhost:3306
DATABASE_USERNAME=root
DATABASE_PASSWORD=
SERVER_IP=127.0.0.1
SERVER_PORT=3000
用法:
app.listen(process.env.SERVER_IP || '127.0.0.1', process.env.SERVER_PORT || 3000);