簡體   English   中英

如何使用Hapi.js來提供靜態HTML索引

[英]How to use Hapi.js to serve a static HTML index

使用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');
        }
    });
});

直接來自doc

詳細地說,你只需要調用reply.file()

由於請求系統發生了重大變化,這對hapi 17無效

server.route({
        method: 'GET',
        path: '/picture.jpg',
        handler: function (request, reply) {
            reply.file('/path/to/picture.jpg');
        }
    });

通過使用Hapi@16.xx和Inert@4.xx以及使用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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM