Я использую Express
, Node.js
с Azure SQL connection
. Я видел azure
node.js руководство по подключению database
. Это работает, когда я добавляю этот код в базовый файл (app.js). Но я хочу вызывать его по-разному для запуска, SQL-запросов, отображать его в разных представлениях, и я хочу, чтобы конфигурация была в одном файле конфигурации (config / database.js). Но я написал все в app.js. Когда я называю это соединение другим маршрутом, оно показывает, что соединение не является таким конструктором.
const express = require('express')
const app = express()
const path = require('path');
const exphbs = require('express-handlebars');
const bodyParser = require('body-parser');
const methodOverride = require('method-override');
//const session = require('express-session');
//const flash = require('connect-flash');
var azureConnection = require('tedious').Connection;
var Request = require('tedious').Request;
var Types = require('tedious').TYPES;
const passport = require('passport');
//var Sequelize = require('sequelize');
//var uuid = require('node-uuid');
var async = require('async');
//const config = require('./config/database');
var azureConfig = {
server: '****',
authentication: {
type: 'default',
options: {
userName: '****',
password: '****'
}
},
options: {
database: '*',
useColumnNames: true // Lookup by column name instead of index
}
}
var azureConnection = new azureConnection(azureConfig);
// Attempt to connect and execute queries if connection goes through
azureConnection.on('connect', function(err) {
if (err) { console.log(err); } else { console.log('Azure Sql Server Connected'); }
function exec(sql) {
var request = new Request(sql, function(err) {
if (err) {
console.log(err);
}
});
_rows = [];
request.on('row', function(columns) {
var _item = {};
// Converting the response row to a JSON formatted object: [property]: value
for (var name in columns) {
_item[name] = columns[name].value;
}
_rows.push(_item);
// console.log(_item);
//res.render('admin/customer-interview', _item);
});
azureConnection.execSql(request);
}
async.waterfall([
function(){
exec('SELECT * FROM ****');
},
]);
});
//set view engine
app.engine('handlebars', exphbs({ defaultLayout: 'admin_log' }));
app.set('view engine', 'handlebars');
//asset file route location
app.use(express.static(path.join(__dirname, 'public')));
//set Body-parser
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
//helper function
//const { select } = require('./helpers/handlebars-helpers');
//Method Override
app.use(methodOverride('_method'));
// Express session
/* Routes Declaration */
const loginData = require('./routes/Login/login.js');
const dashboardData = require('./routes/Dashboard/dashboard.js');
const customersData = require('./routes/Customers/customers.js');
const customerInterviewData = require('./routes/Customer-Interview/customer-interview.js');
const purchaseHistoryData = require('./routes/Purchase-History/purchase-history.js');
const notesData = require('./routes/Masters/notes.js');
const groupMasterData = require('./routes/Masters/groupmaster.js');
const typeMasterData = require('./routes/Masters/typemaster.js');
/* Route Callback */
app.use('/login', loginData);
app.use('/', dashboardData);
app.use('/customers', customersData);
app.use('/customer-interview', customerInterviewData);
app.use('/purchase-history', purchaseHistoryData);
app.use('/notes', notesData);
app.use('/groupmaster', groupMasterData);
app.use('/typemaster', typeMasterData);
app.listen(80, '0.0.0.0', () => {
console.log('listening on port :80');
});