2015-08-13 3 views
2

У меня очень трудное время с попыткой превратить текущее приложение Node.js в настольное приложение с помощью Node Webkit. Без использования webkit мое приложение работает отлично. Я запускаю свой сервер, используя «Node app.js» в терминале. Затем, когда я подключаюсь к localhost: 8080, клиент подключается и загружается страница index.html; приложение работает отлично. Мне нужно, чтобы все это происходило из настольного приложения, и поэтому я использую веб-узел узла.Как связать экспресс-сервер и html-скрипт с тем же приложением приложения Web-узла?

Не могу понять, как это сделать, используя веб-узел узла. Я обыскал онлайн в течение нескольких часов, и это, похоже, является общей проблемой, но никто не имеет достойного и простого в использовании решения. Если бы кто-то мог мне помочь, это было бы очень признательно.

Также на боковой ноте я попытался загрузить файл node.js сначала, используя свойство node-main в моем файле package.json, но это не сработает. По какой-то причине свойство «node-main» сбрасывает мое приложение webkit каждый раз, когда я пытаюсь его использовать.

Если кто-то может дать четкое описание того, как реализовать все это в одно веб-приложение, которое было бы очень полезно. Благодаря!

ответ

2

вам нужно использовать node-main делать то, что вы пытаетесь достичь. Из-за исключения ваш код, вероятно, сбой.

первым, добавьте node-main к конфигурации

"node-main": "index.js", 

Для отладки кода, используйте присоединять неперехваченное обработчик исключений:

var report_error = function(err){ 
    if (typeof console == 'object' && typeof console.log == 'function') { 
     console.log('Exception: ' + err.message, err.stack); 
    } else { 
     setTimeout(function(){report_error(err);},200); 
    } 

}; 
process.on('uncaughtException', function (err) { 
    report_error(err); 
}); 

к сведению, что я проверить, если консоль доступна - если этот сценарий еще не доступна:

Этот символ недоступен в то время, когда scr Загружается ipt, , потому что скрипт выполняется перед загрузкой окна DOM (source).

У меня возникли подобные проблемы, потому что я использовал console.log в index.js. после использования следующей функции вместо console.log я получил это для работы:

var console_log = function(err){ 
    if (typeof console == 'object' && typeof console.log == 'function') { 
     console.log(err); 
    } else { 
     setTimeout(function(){console_log(err);},200); 
    } 
}; 
1

- это действительно странный случай для настольного приложения, но если вам это действительно нужно, вы можете запустить свой сервер, используя дочерний процесс, сначала из метода window.onload, включенного в index.html вашего приложения NW, с некоторыми такой код:

var exec = require('child_process').exec; 
exec('node app.js ', function(error, stdout, stderr) { 
    if (error !== null) {   
     throw error; 
    } 

    console.log('Server listening'); 
}); 

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

  • Нет связанных вопросов^_^