[node.js] nodejs 연결은 정적을 찾을 수 없습니다

참고 : 여기에 제공된 다른 솔루션을 시도했지만 작동하지 않았습니다.

NodeJ를 사용하는 초보자. AngularJS pro를 따르려고 노력하고 있으며 NodeJs 서버를 설정하는 데 어려움을 겪었습니다. 책에 따르면 nodejs를 설치 한 다음 npm install connect를 사용하여 connect 패키지를 설치했습니다.

그런 다음 nodejs 폴더 옆의 폴더에 angularjs를 다운로드했습니다. 그런 다음 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

어떤 아이디어가 있습니까? 감사.



답변

연결 패키지는 코드베이스의 최신 3.x 버전에서 일부 변경을 수행하여 static미들웨어를 자체 패키지로 이동 했습니다. 여기에서 이동 된 패키지 목록을 볼 수 있습니다 .

따라서 두 가지 옵션이 있습니다.

옵션 1
이전 2.x 버전의 connect를 설치하고 그대로 사용할 수 있습니다.

$ npm install@2.XX

최신 2.XX 버전을 설치하면 현재 구현이 제대로 작동 할 수 있습니다.

옵션 2
3.x 버전의 connect를 계속 사용할 수 있으며 다음을 추가 할 수도 있습니다 serve-static.

$ npm install serve-static

또한 server.jsserve-static모듈 을 포함하도록 파일을 업데이트해야 합니다 .

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

var app = connect();

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


답변

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를 설치 한 디렉토리에있는 동안 다음을 실행하십시오.

    노드 server.js

  2. URL
    http : // localhost : 5000 / test.html로 이동합니다.

작동합니다. 내 디렉토리 구성은 다음과 같습니다. C : \ NodeJSInstallLocation \ angularjs


답변

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

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


답변

이런 식으로 시도해 볼 수 있습니다.

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


답변

이 시도…

  const express = require('express');
  const app = express();
  const path = require('path');

  app.use('',express.static(path.join(__dirname, '/static/')));


답변