Базовый веб-сервер с node.js и экспресс для обслуживания HTML-файла и активов - PullRequest
39 голосов
/ 25 февраля 2012

Я провожу некоторые эксперименты с веб-интерфейсом и хотел бы иметь очень простой веб-сервер для быстрого запуска проекта и обслуживания файлов (один файл index.html + несколько файлов css / js / img).Поэтому я пытаюсь сделать что-то с помощью node.js и express, я уже поиграл с обоими, но на этот раз я не хочу использовать движок рендеринга, так как у меня будет только один статический файл, с этим кодом я получаюhtml-файл, но не ресурсы (ошибка 404):

var express = require('express'),
    app = express.createServer();

app.configure(function(){
  app.use(express.static(__dirname + '/static'));
});

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

app.listen(3000);

Есть ли простой способ сделать это (в одном файле, если это возможно), или Express требует использования механизма просмотра и рендеринга?

Ответы [ 3 ]

60 голосов
/ 02 марта 2012

Я сталкивался с этим, потому что у меня похожая ситуация. Мне не нужны или не нравятся шаблоны. Все, что вы помещаете в каталог public / в Express, становится статическим контентом (как и Apache). Поэтому я поместил туда свой index.html и использовал sendfile для обработки запросов без файла (например: GET http://mysite/):

app.get('/', function(req,res) {
  res.sendfile('public/index.html');
});
25 голосов
/ 16 августа 2014

Следующий код работал для меня.

var express = require('express'),
  app = express(),
  http = require('http'),
  httpServer = http.Server(app);

app.use(express.static(__dirname + '/folder_containing_assets_OR_scripts'));

app.get('/', function(req, res) {
  res.sendfile(__dirname + '/index.html');
});
app.listen(3000);

загружает страницу с активами

13 голосов
/ 25 февраля 2012

Вы можете использовать подобное решение в node.js (ссылка больше не работает) , как я уже писал в блоге.

Суммируйте, установите соединение с npm install connect.

Затем вставьте этот код в файл с именем server.js в той же папке, что и ваши файлы HTML / CSS / JS.

var util = require('util'),
    connect = require('connect'),
    port = 1337;

connect.createServer(connect.static(__dirname)).listen(port);
util.puts('Listening on ' + port + '...');
util.puts('Press Ctrl + C to stop.');

Теперь перейдите к этой папке в вашем терминале и запустите node server.js, это даст вам временный веб-сервер на http://localhost:1337

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...