使用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.html"
};
app.use('/', express.static('res', options));
server.listen(port);
console.log("Listening on port " + port);
如何使用Hapi.js实现相同的目标?
我也尝试过一些与惰性相关的东西,但我似乎无法找到正确的方法。有没有人有这方面的经验?
找到了我的实现方法,但是我得到了TypeErrors: 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');
}
});
});
答案 0 :(得分:2)
直接从doc
详细说明,您只需调用reply.file()
即可由于请求系统发生了重大变化,这不适用于hapi 17
server.route({
method: 'GET',
path: '/picture.jpg',
handler: function (request, reply) {
reply.file('/path/to/picture.jpg');
}
});
答案 1 :(得分:1)
使用Hapi@16.x.x和Inert@4.x.x修正并使用Ernest Jones回答。
对于今后处理此问题的任何人来说,这是我的完全改变:
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();