Веб-сервер node.js не перезагружается

0

Я использую этот скрипт для моего web-сервера node.js(ubunt):

var util = require('util'),
    http = require('http'),
    fs = require('fs');


fs.readFile('htdocs/index.html', function (err, html) {
    if (err) {
        throw err; 
    }       
    http.createServer(function(request, response) {  
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    }).listen(80);
    util.puts('> Server is running');
});

Я начинаю сценарий с:

forever start server.js

... и это работает.

Но это не сработает. Если я загружу некоторые простые html файлы, такие как index.html, со ссылкой на test.html.

Он работает только в том случае, если я остановлюсь и запустим скрипт. Но ссылка из index.html на test.html не работает.

1 ответ

1
Лучший ответ

То, что вы делаете, это чтение файла, а затем запуск сервера, что означает, что ответ останется таким же, пока работает сервер. Чтобы всегда получать последнюю версию index.html, вам необходимо прочитать ее по каждому запросу:

var util = require('util'),
    http = require('http'),
    fs = require('fs');


http.createServer(function(request, response) {
    fs.readFile('htdocs/index.html', function (err, html) {
        if (err) {
            throw err; 
        }

        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    });
}).listen(80);
util.puts('> Server is running');

Чтобы обслуживать не только один файл, вам необходимо настроить статический веб-сервер, например, используя connect static:

var connect = require('connect');
connect.use(connect.static(__dirname + '/htdocs'))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню