Guida allo sviluppo della guida

Aggiornamento a caldo del modulo server

fibjsIl server http è un programma server indipendente residente in memoria, il che significa che in caso di aggiornamento della versione, spesso è necessario riavviare il programma di servizio.

Supponiamo di avere il seguente programma di servizio:

  • web.jsgestore http
  • app.jsIngresso della domanda
1 2 3 4 5 6
// web.js var _ver = new Date(); module.exports = function (r) { r.response.write("Hello, new word @ " + _ver); }
1 2 3 4 5 6 7 8 9
// app.js var http = require("http"); var vm = require("vm"); var coroutine = require("coroutine"); var webServer = require("./web"); var svr = new http.Server(8080, webServer); svr.start();

In app.jsriferimento diretto web.js, ogni volta che l'applicazione viene aggiornata, deve essere riavviata . C'è un modo per caricare automaticamente l'ultima versione app.jsdurante l'aggiornamento del codice ?app.jsweb.js

Possiamo usare il nativo di fibjsSandBoxmodulo per ottenere aggiornamenti rapidi e fluidi. Apporta app.jsalcune modifiche a:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// app.js var http = require("http"); var vm = require("vm"); var coroutine = require("coroutine"); // var webServer = require("./web"); function new_web() { return new vm.SandBox({ mq: require("mq") }).require("./web.js", __dirname); } // update svr.handler every 1 second. coroutine.start(function() { while (true) { coroutine.sleep(1000); svr.handler = new_web(); } }) var svr = new http.Server(8080, new_web()); svr.start();

app.jsViene avviato un ciclo in e un modulo sicuro viene rigenerato dal contenuto requireogni 1 s per il rimontaggio . Quando è necessario aggiornare il contenuto, è sufficiente sostituire il file per ottenere un aggiornamento fluido del programma server.web.jssvrhandlerweb.js

👉【Pratica per applicazioni Web ad alte prestazioni