#node.js #connect
#node.js #Контакты
Вопрос:
когда я вызываю это node.js файл
var connect = require('connect');
var app = connect();
app.use(connect.static('public'));
app.listen(3000);
Я сразу получаю
app.use(connect.static('public'));
^
TypeError: Object function createServer() {
function app(req, res, next){ app.handle(req, res, next); }
merge(app, proto);
merge(app, EventEmitter.prototype);
app.route = '/';
app.stack = [];
return app;
} has no method 'static'
Используя Connect 3.0.1, есть ли изменения в интегрированных модулях?
Если да, то как это работает тогда?
Ответ №1:
большие изменения, связанные с подключением 3: модули промежуточного программного обеспечения больше не включены. Найдите их по адресу github.com/expressjs . «статический» теперь «обслуживающий-статический». Его необходимо установить отдельно с:
npm install serve-static
Приведенный выше код теперь должен выглядеть следующим образом:
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
app.use(serveStatic('public'));
app.listen(3000);
Комментарии:
1. это должно быть в документации… печально то, что это не так:(
2. был добавлен сейчас, по крайней мере, здесь: github.com/senchalabs/connect/blob/master/Readme.md
3. Я предполагаю, что они все еще находятся в процессе обновления документов, все еще не обновленных здесь: senchalabs.org/connect
4. Для проекта, с которым я работаю, мне нужно было изменить
serveStatic('public')
наserveStatic(__dirname)
5. Связанный: мне также пришлось установить
gulp-serve-index
и заменитьconnect.directory('app')
наserveIndex('app')
Ответ №2:
Мне пришлось установить connect и обслуживать-static
npm install connect
затем введите:
npm install serve-static
Приведенный ниже код выдаст вам приятное сообщение о том, что ваш сервер подключен к порту 3000.
var connect = require('connect');
var serveStatic = require('serve-static');
var app = connect();
var port = 3000;
app.use(serveStatic(__dirname));
app.listen(port);
console.log('You are connected at port ' port);