在Nodewekit中运行Hapi.js

时间:2016-03-01 14:02:02

标签: javascript node-webkit hapijs

有没有人在Nodewebkit中运行Hapi应用程序?

这是我的package.json:{ "name": "nw", "version": "1.0.0", "description": "", "main": "index.html", "node-main": "nwindex.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "webkit": { "page-cache":false }, "author": "", "window": { "toolbar": true, "width": 800, "height": 500 }, "license": "ISC", "dependencies": { "jquery": "^2.1.4", "nw": "^0.12.2", "pretty-bytes": "^1.0.2" } }

这是我的index.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My App</title>

</head>
<body>
<script type="text/javascript">  
   var gui = require('nw.gui');
   var win = gui.Window.get();

   var fs = require("fs");
   gui.App.clearCache();


  setTimeout (function () {
     window.location = 'http://localhost:3000';
  },1000)

       

这是我的nwindex.js(Getting started from official site):

'use strict';

const Hapi = require('hapi');

const server = new Hapi.Server();
server.connection({ port: 3000 });

server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
    reply('Hello, world!');
    }
  });

  server.route({
   method: 'GET',
   path: '/{name}',
   handler: function (request, reply) {
       reply('Hello, ' + encodeURIComponent(request.params.name) + '!');
    }
  });
  server.start((err) => {

    if (err) {
       throw err;
    }
    console.log('Server running at:', server.info.uri);
  });

问题是当我启动NW时,它立即存在。我可以看到里面发生了什么。

我已经逐行删除了代码以查看问题是什么,我已将其缩小到初始调用行:

const Hapi = require('hapi');

似乎崩溃了应用程序。任何帮助都是适用的。 我使用的Nodewebkit版本:

  • nw.js v0.12.3
  • io.js v1.2.0
  • Chromium 41.0.2272.76

经过更多测试后,似乎这是一个问题:

server.start((err) => {

这=&gt;运营商。如何绕过它?

1 个答案:

答案 0 :(得分:1)

您所描述的是ES6箭头功能,该功能在您使用的节点版本中不可用。 ES6 in Node.js

server.start(function(err){

    if (err) {
       throw err;
    }
    console.log('Server running at:', server.info.uri);
});