Подтвердить что ты не робот

Nodejs connect не может найти статический

ПРИМЕЧАНИЕ. Я пробовал другое решение, данное здесь, но это не сработало

Новичок с NodeJs. Я пытаюсь следовать за AngularJS pro и застрял в настройке сервера NodeJs. Согласно книге, я установил nodejs, а затем установил пакет подключения, используя npm install connect

затем загрузите angularjs в папку рядом с папкой nodejs. Затем написал файл server.js для подключения к серверу. Вот содержание файла:

    var connect = require('connect');
connect.createServer(connect.static("../angularjs")).listen( 5000);

Когда я запускаю этот файл server.js, используя:

node server.js

Я получаю следующую ошибку:

 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'
   at Object.<anonymous> (C:\web\nodejs\server.js:2:36)
   at Module._compile (module.js:456:26)
   at Object.Module._extensions..js (module.js:474:10)
   at Module.load (module.js:356:32)
   at Function.Module._load (module.js:312:12)
   at Function.Module.runMain (module.js:497:10)
   at startup (node.js:119:16)
   at node.js:906:3

Любые идеи парней? Спасибо.

4b9b3361

Ответ 1

Пакет подключений внес некоторые изменения в последнюю версию своей базы кода 3.x, перемещая промежуточное программное обеспечение static в собственный пакет. Вы можете просмотреть список пакетов, которые были перемещены здесь.

Итак, у вас есть два варианта:

Вариант 1
Вы можете установить более старую версию 2.x и использовать ее как:

$npm install [email protected]

Установка последней версии 2.X.X позволит вашей текущей реализации правильно функционировать.

Вариант 2
Вы можете продолжить использовать 3.x версию подключения, а также добавить serve-static:

$npm install serve-static

Вам также необходимо обновить файл server.js, чтобы включить новый модуль serve-static:

var connect = require('connect'),
    serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("../angularjs"));
app.listen(5000);

Ответ 2

Ответ на dylants полезен. Однако здесь приведены точные шаги, которые я выполнил, чтобы разрешить ту же ошибку. 1. Из командной строки смените каталог на каталог, в котором вы установили nodeJS. 2. После того, как вы уже выполнили npm install connect, запустите:

npm install serve-static

3. Создайте файл с именем server.js со следующим кодом:

var connect = require('connect'),
serveStatic = require('serve-static');

var app = connect();

app.use(serveStatic("./angularjs"));
app.listen(5000);
  1. Пока все еще в окне команд и еще в каталоге, в котором вы установили nodeJS, запустите:

    node server.js

  2. Перейдите к URL-адресу http://localhost:5000/test.html

Это должно сработать. Вот моя конфигурация каталога: C:\NodeJSInstallLocation\angularjs

Ответ 3

var connect = require('connect'),
    serveStatic = require('serve-static');

connect().use(
    serveStatic("angularjs")
).listen(5000);

Ответ 4

Возможно, вы захотите попробовать что-то вроде этого

var express = require('express');
var app = express();
app.use(express.static('angularjs'));