модуль node-http-server для ответа с индексом. html на любой запрос - PullRequest
0 голосов
/ 06 января 2020

Я установил node-http-server модуль. Я запускаю его с myDir на локальном порту 8000. В myDir у меня есть индекс. html. Если я запрашиваю (из браузера) http://localhost:8000/, я получаю index.html, что нормально и хорошо.

Если я запрашиваю http://localhost:8000/anything, я не получаю никакого ответа от сервера.

Вот код, который я использовал (приложение. js):

const server=require('node-http-server');
var fs = require("fs");
var config = new server.Config;
config.root=__dirname;
config.server.index='index.html';

function getReq(req, res, body,enc) {
    console.log("got rewq");
    var content = fs.readFileSync('index.html', 'utf8');
    body.value = content;

}
server.deploy({port:8000});

Я обнаружил, что тот же вопрос задавался по этой ссылке: узел http-сервера для ответа с индексом. html на любой запрос . Но это было для http-server модуля. Я использую node-http-server модуль. Я читаю документацию в https://github.com/RIAEvangelist/node-http-server. Но не могу найти подходящих решений. Помогите мне с некоторыми решениями.

1 Ответ

0 голосов
/ 06 января 2020

Чтобы начать исследовать вашу проблему, я бы сначала посмотрел на ваш код.

const server=require('node-http-server');
var fs = require("fs");
var config = new server.Config;
config.root=__dirname;
config.server.index='index.html';

function getReq(req, res, body,enc) {
    console.log("got rewq");
    var content = fs.readFileSync('index.html', 'utf8');
    body.value = content;

}
server.deploy({port:8000});

Функция GetReq () явно должна делать то, что вы ожидаете, но я не вижу, где вы на самом деле предоставляете node-http- сервер с его функцией, которая будет вызываться как обратный вызов. Теперь давайте исправим ваш код.

const server=require('node-http-server');
var fs = require("fs");
var config = new server.Config;
config.root=__dirname;
config.server.index='index.html';

function getReq(req, res, body,enc) {
    console.log("got rewq");
    var content = fs.readFileSync('index.html', 'utf8');
    body.value = content;

}
server.deploy({port:8000}, getReq);

Короче говоря, вы не читали документацию для модуля, вам нужно передать функцию обратного вызова в качестве опции для развертывания метода. server.deploy({port:8000}, getReq);

...