Тема: node + mssql
Показать сообщение отдельно
  #8 (permalink)  
Старый 04.06.2021, 08:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Вот так я модернизировал стандартную "раму", что генерит Electron

var myApp = require('../app');
var debug = require('debug')('shop:server');
var http = require('http');
const MongoClient = require('mongodb').MongoClient

var port = normalizePort(process.env.PORT || '3000');
MongoClient.connect(
	'mongodb://localhost:27017',
	{useUnifiedTopology: true},
	function (err, client) {
		let db = false
		if (err) {
			console.log('Нет контакта с MongoDB')
		} else {
			console.log('Контакт с MongoDB')
			db = client.db('test')
		}
		const app = myApp(db)
		app.set('port', port);

		var server = http.createServer(app);

		server.listen(port);
		server.on('error', onError);
		server.on('listening', onListening);

		function onError(error) {
			if (error.syscall !== 'listen') {
				throw error;
			}
			
			var bind = typeof port === 'string'
			? 'Pipe ' + port
			: 'Port ' + port;
			
			// handle specific listen errors with friendly messages
			switch (error.code) {
				case 'EACCES':
				console.error(bind + ' requires elevated privileges');
				process.exit(1);
				break;
				case 'EADDRINUSE':
				console.error(bind + ' is already in use');
				process.exit(1);
				break;
				default:
				throw error;
			}
		}
		
		function onListening() {
			var addr = server.address();
			var bind = typeof addr === 'string'
			? 'pipe ' + addr
			: 'port ' + addr.port;
			debug('Listening on ' + bind);
		}
	}
)
 function normalizePort(val) {
	 var port = parseInt(val, 10);
	 if (isNaN(port)) {
		 // named pipe
		 return val;
	 }
	 if (port >= 0) {
		 // port number
		 return port;
	 }
	 return false;
 }
Ответить с цитированием