运行 Hapi.js 在 Nodewekit 中
Running Hapi.js in Nodewekit
有人运行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
- 铬 41.0.2272.76
经过更多的测试,这似乎是一个问题:
server.start((err) => {
这个 => 运算符。如何绕过?
您所描述的是 ES6 箭头函数,该函数在您使用的节点版本中不可用。 ES6 in Node.js
server.start(function(err){
if (err) {
throw err;
}
console.log('Server running at:', server.info.uri);
});
有人运行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
- 铬 41.0.2272.76
经过更多的测试,这似乎是一个问题:
server.start((err) => {
这个 => 运算符。如何绕过?
您所描述的是 ES6 箭头函数,该函数在您使用的节点版本中不可用。 ES6 in Node.js
server.start(function(err){
if (err) {
throw err;
}
console.log('Server running at:', server.info.uri);
});