IT

Express 4.x에서“./bin/www”는 무엇입니까?

lottoking 2020. 6. 18. 07:33
반응형

Express 4.x에서“./bin/www”는 무엇입니까?


방금 Node.js 앱에서 Express 4.0에 대해 배우기 시작 ./bin/www했으며 응용 프로그램 서버 및 포트 설정 만 작성되고 미들웨어 및 라우팅과 같은 다른 모든 ./app.js파일이 파일에 정의되어있는 파일을 생성했습니다.

그러나 이것이 무엇을하는지 잘 모르겠습니다 ./bin/www. Express 3.x를 사용했으며 항상 동일한 ./app.js파일 에서 라우팅 및 미들웨어뿐만 아니라 서버 및 포트 설정을 정의하고로 노드 앱을 시작했습니다 node app.js. 그래서 사용하는 요점은 무엇 ./bin/www입니까? 서버와 포트 정의 만 다른 서버와 분리합니까?

현재 express-generator를 사용하여 패키지를 만들면 package.json다음과 같은 정의 포함됩니다.

"scripts": {
    "start": "node ./bin/www"
}

그러나, 나는 내 응용 프로그램을 사용하여 실행해야하는지 궁금 node ./bin/www하거나 npm start. 앱을 시작하려면 어떤 명령을 실행해야합니까?

또한 앱을 heroku에 배포 할 때 Procfile파일에 무엇을 작성해야 합니까? web: node app.js충분?


에서 익스프레스 3.0 , 당신은 일반적으로 사용하는 것 app.configure()(또는 app.use()당신이 필요로 필요한 미들웨어를 설정). 지정한 미들웨어는 Express 3.0과 함께 번들로 제공됩니다.

예:

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.compress());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());

그러나 Express 4.0 에서는 모든 미들웨어가 제거되어 핵심 Express (정적 미들웨어 제외)와 독립적으로 유지 보수 및 업데이트 될 수 있으므로 별도로 호출해야합니다 (에 표시된 내용 app.js).

bin/디렉토리는 당신이 당신의 다양한 정의 할 수있는 위치의 역할을 시작 스크립트 . www웹 서버로 명시 응용 프로그램을 시작하는 예입니다.

궁극적으로, 당신은 같은 다른 스크립트를 가질 수있다 test, stop또는 restart등이 구조를 갖는로 모든 것을 주입식없이, 당신은 다른 시작 구성을 가질 수 있습니다 app.js.

Express 앱을 시작하는 올바른 방법은 다음과 같습니다.

npm start

Heroku에 Express 4.x을 배포하려면 다음에 추가하십시오 .Procfile

web: npm start

Express 3.x와 같은 노드 앱은 비표준 시작 파일 app.js을 사용하지만 실행하기에 잘못된 파일입니다.

package.json 있다

   "scripts": {
     "start": "node ./bin/www"
   }

시작 명령 줄을 나타냅니다. 시작 파일에 대한 경로뿐만 아니라 전체 명령 행이 포함되어 있기 때문에 사소하지 않습니다.


당신이 명시 발전기를 사용하는 경우, 당신의 로컬 파일에서 보면 ./bin,이 www./bin의 파일 내부. node ./bin/www따라서을 실행 하면 node.js가 www파일 에서 코드를 실행 합니다. 멋진 것은 없습니다.


Windows에서는 다음 명령을 사용하십시오.

DEBUG = myapp : * & npm start를 설정 한 다음 브라우저에 http : // localhost : 3000 /로드 하여 앱에 액세스하십시오.


이것을 Procfile에 넣고 web: node ./bin/www작동하는지 확인하십시오 foreman start. 포트 5000에서 앱을 사용할 수 있어야합니다.

참고 URL : https://stackoverflow.com/questions/23169941/what-does-bin-www-do-in-express-4-x

반응형