当前位置 : 主页 > 网页制作 > Nodejs >

node.js – 如何在启动node-webkit之前启动Meteor实例?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我开发了一个 Meteor应用程序.我想将此应用程序打包在Chromium的node-webkit应用程序运行时中.我需要Meteor服务器进程在本地运行.当用户启动node-webkit应用程序时,我将如何启动Meteor服务器进
我开发了一个 Meteor应用程序.我想将此应用程序打包在Chromium的node-webkit应用程序运行时中.我需要Meteor服务器进程在本地运行.当用户启动node-webkit应用程序时,我将如何启动Meteor服务器进程?

我知道我可以使用node-webkit启动一个NodeJS服务器实例,如下所示:

server.js

#!/usr/bin/env node
require('http').createServer(function(req, res) {
  res.writeHead(200, {'content-type': 'text/html'});
  res.end('<h1>sup</h1>');
}).listen(9000, '127.0.0.1');

如果我跑:

$nw ./

node-webkit将启动NodeJS服务器并启动node-webkit实例.我在这里没有包含package.json文件,但它基本上只是说看看http://127.0.0.1:9000.

那么,在node-wekkit应用程序运行时,我将如何编写该server.js文件以启动Meteor实例?

谢谢你的任何想法.

首先捆绑您的meteor app meteor build –directory / your / node-webkit / project /并使用此代码启动您的应用.但是,使用node-webkit打包Meteor可能会有点复杂.首先,您需要在客户端计算机上运行mongodb服务器,或者客户端可以随时连接的某个地方.

var path = require('path');
var child_process = require('child_process');

// change these
var PORT = 9000;
var ROOT_URL = 'http://localhost:'+PORT;
var MONGO_URL = 'mongodb://localhost:27017/my_app_db';
var NODE_BIN = '/usr/local/bin/node';

// install npm dependencies
var options = {cwd: path.resolve(__dirname, 'bundle/programs/server/')};
var installNpm = child_process.exec('npm install', options, onNpmInstall);

function onNpmInstall (err, stderr, stdout) {
  if(err) throw new Error('could not install npm dependencies');

  // start Meteor
  var options = {
    env: {PORT: PORT, MONGO_URL: MONGO_URL, ROOT_URL: ROOT_URL},
    cwd: __dirname
  };

  var proc = child_process.spawn(NODE_BIN, ['bundle/main.js'], options);
  proc.on('close', function (code) {
    console.log('Meteor exited with code ' + code);
  });
}

如果需要100%客户端应用程序,则必须删除与mongo相关的智能包.

网友评论