Javascript 如何使用Hapi.js提供静态HTML索引
使用express.js,我可以做到这一点Javascript 如何使用Hapi.js提供静态HTML索引,javascript,html,express,hapijs,Javascript,Html,Express,Hapijs,使用express.js,我可以做到这一点 var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io')(server); var port = 9200; var path = require('path'); var options = { index: "html/index.
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var port = 9200;
var path = require('path');
var options = {
index: "html/index.html"
};
app.use('/', express.static('res', options));
server.listen(port);
console.log("Listening on port " + port);
如何使用Hapi.js实现同样的功能
我也用inertjs做了一些尝试,但似乎找不到正确的方法。有人有这方面的经验吗
找到了实现此实现的方法,但我遇到了类型错误:
TypeError:无法读取未定义的属性“register”
server.register(require('inert'), (err) => {
if (err) {
throw err;
}
server.route({
method: 'GET',
path: '/index',
handler: function (request, reply) {
reply.file('C:/blabla/html/index.html');
}
});
});
直接从
详细地说,您只需调用reply.file()
由于请求系统中的重大更改,这将不适用于hapi 17
server.route({
method: 'GET',
path: '/picture.jpg',
handler: function (request, reply) {
reply.file('/path/to/picture.jpg');
}
});
用Hapi@16.x.x及Inert@4.x.x用欧内斯特·琼斯的回答 对于将来处理此问题的任何人,我的全部变化如下:
const Hapi = require('hapi');
const Inert = require('inert');
const server = new Hapi.Server();
server.connection({port: 9200});
server.register(Inert, (err) => {
if (err) {
throw err;
}
server.route({
method: 'GET',
path: '/index',
handler: function (request, reply) {
reply.file('/res/html/index.html');
}
});
server.route({
path: "/res/{path*}",
method: "GET",
handler: {
directory: {
path: "./res",
listing: false,
index: false
}
}});
});
server.start();
我想是服务器。路由,我会试试。它是我索引的绝对路径吗?c:/users/username/webstormprojects/projectname/index.html??我想对您的项目根目录说,那里有您的package.json,但我不确定,您应该同时尝试这两种方法。。。并验证我的答案^^按照上面提到的方式进行操作会给我未经处理的承诺、拒绝和拒绝警告非常确定您使用的是hapi 17