2016-01-17 2 views
-1

Это прекрасно работает, но мне нужно разбить его. В целях запуска разных кодов для разных страниц на моем веб-сайте.node.js - что такое «экспорт». я просто хочу, чтобы он «слился»

var http = require('http'); 
var url = require('url'); 
var mysql = require('mysql'); 

var connection = mysql.createConnection({ 
    host  : '-----', 
    user  : '-----', 
    password : '----', 
    database : '----', 
}); 

connection.connect(); 

var ss = 'SELECT * FROM 1_accounts order by ac_nu asc limit 5'; 

connection.query(ss, function(err,res,fields){ 
aa = JSON.stringify(res); 
}); 


var server=http.createServer(function(req,res){ 
    res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'}); 
    res.end('test' + aa); 
}).listen(80); 

расщепленные ДАВАЙТЕ его в:

1.js и 2.js

1.js:
включил эту строку:
требуется ('/ 2.js');

var http = require('http'); 
var url = require('url'); 
var mysql = require('mysql'); 

var connection = mysql.createConnection({ 
    host  : '-----', 
    user  : '-----', 
    password : '----', 
    database : '----', 
}); 

connection.connect(); 

var server=http.createServer(function(req,res){ 
    res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'}); 
    require('/2.js'); 
    res.end('test' + aa); 
}).listen(80); 

2.js

var ss = 'SELECT * FROM 1_accounts order by ac_nu asc limit 5'; 

connection.query(ss, function(err,res,fields){ 
aa = JSON.stringify(res); 
}); 

Как я могу сказать, 1.js включать только 2.js если URL имя пути '/ 2'?

Я скорее не делаю «экспорт» и так далее. Я хочу, чтобы это просто было похоже на концепцию «включить» php. Это было бы более логично, потому что это было бы «бесшовно».

+1

_ «Я хочу, чтобы это просто было похоже на концепцию« включить »« php ». Ну, это не так, как это работает. – robertklep

+0

Как мы можем сделать многостраничные веб-сайты, если я не могу просто объединить 2 скрипта вместе, не исчерпывая свой сервер экспортом. Обработка ошибок .. и так далее ..? –

+0

Что вы подразумеваете под _ «исчерпанием моего сервера с экспортом» _? – robertklep

ответ

0

Модуль модуля Node.js не работает как PHP.

Один из способов сделать ваш код работает как это:

1.js

var http = require('http'); 
var url = require('url'); 
var mysql = require('mysql'); 

var connection = mysql.createConnection({ 
    host  : '-----', 
    user  : '-----', 
    password : '----', 
    database : '----', 
}); 

connection.connect(); 

var server = http.createServer(function(req,res){ 
    var two = require('./2.js'); 
    two.myQuery(connection, function(err, aa) { 
     res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'}); 
     if (err) { 
      res.end('error: ' + err); 
     } 
     else { 
      res.end('test' + aa); 
     } 
    }); 
}).listen(80); 

2.js

function myQuery(connection, cb) { 
    var ss = 'SELECT * FROM 1_accounts order by ac_nu asc limit 5'; 

    connection.query(ss, function(err,res,fields){ 
     if (err) { 
      cb(err); 
      return; 
     } 
     cb(null, JSON.stringify(res)); 
    }); 
} 

module.exports = { 
    myQuery: myQuery 
}; 

Это потребует, что вы передаете подключение к базе данных для каждого запрос. Кроме того, вы можете поместить соединение с базой данных в отдельный файл, например.

1.js

var http = require('http'); 
var url = require('url'); 
var mysql = require('mysql'); 

var server = http.createServer(function(req,res){ 
    var two = require('./2.js'); 
    two.myQuery(function(err, aa) { 
     res.writeHead(200,{'Content-Type': 'text/html; charset=utf-8'}); 
     if (err) { 
      res.end('error: ' + err); 
     } 
     else { 
      res.end('test' + aa); 
     } 
    }); 
}).listen(80); 

db.js

var mysql = require('mysql'); 

var connection = mysql.createConnection({ 
    host  : '-----', 
    user  : '-----', 
    password : '----', 
    database : '----', 
}); 

connection.connect(); 

module.exports = { 
    connection: connection 
} 

2.js

var db = require('./db'); 
function myQuery(cb) { 
    var ss = 'SELECT * FROM 1_accounts order by ac_nu asc limit 5'; 

    db.connection.query(ss, function(err,res,fields){ 
     if (err) { 
      cb(err); 
      return; 
     } 
     cb(null, JSON.stringify(res)); 
    }); 
} 

module.exports = { 
    myQuery: myQuery 
}; 

Независимо от того решения, которое вы используете, я рекомендую прочитать больше о node.js modules для ознакомления с how this mechanism works.

Смежные вопросы