이 글은 주로 Node의 다양한 환경에서 구성 파일을 사용하는 것과 관련된 정보를 소개합니다. 이 글은 샘플 코드를 통해 매우 자세하게 소개되어 있어 공부나 업무에 필요한 모든 사람에게 도움이 되는 학습 가치가 있습니다. 아래에서 함께 배워보세요.
머리말
Node.js를 사용하여 전체 프로젝트를 작성할 때 프로그램이 다양한 환경에서 실행될 수 있도록 일부 구성 가능한 변수가 프로그램에 필요한 경우가 많습니다. 실제로 프로젝트에는 여러 가지 변수가 있습니다. 다른 환경에서는 일부 구성이 다릅니다. 개발 효율성을 높이기 위해 다른 환경에서 다른 구성을 호출하는 방법은 무엇입니까? 아래에서는 할 말이 많지 않으니, 자세한 소개를 살펴보겠습니다.
1. config-lite 모듈
먼저 구성 모듈 config-lite를 도입하고 npm i config-lite --save 명령을 사용하여 설치합니다.
일반적으로 우리는 다양한 환경에 대한 다양한 구성 파일에 구성을 작성합니다. Node 프로젝트 아래에 새 구성 디렉터리를 생성하고, 다양한 환경에 대한 새 구성 파일을 생성합니다. 여기서는 "개발"과 "프로덕션"이라는 두 가지 환경을 사용합니다. 작동 방법을 설명하는 예입니다.
개발 환경에서는 config 디렉터리에 test.js와 default.js라는 두 개의 새 파일을 생성합니다. 프로덕션 머신 구성은 프로덕션 환경에서 생성되어야 하기 때문에 프로덕션 머신 구성 파일이 없는 이유가 궁금할 수 있습니다.
test.js 구성 파일에 다음 코드를 작성합니다(PS. 다음은 mysql 구성의 예입니다).
// test.js module.exports = { mysql : { host: "localhost", user: "lupeng", password: "080910", database: "b1imd" } };
세션 구성 등과 같은 일부 기본 구성 파일을 default.js에 작성합니다.
// default.js module.exports = { mysql : { host: "10.20.141.220", user: "lupeng", password: "123456", database: "b1imd" }, session: { secret: 'keyboard cat', resave: false, saveUninitialized: true, cookie: { maxAge: 1000*60*60 } } };
자, 설정 파일이 작성됐는데 어떻게 사용하나요? 여기서는 config-lite 모듈을 사용합니다. 이 모듈은 환경 변수를 기반으로 다양한 구성 파일을 선택하므로 사용하기 전에 package.json에서 시작 명령을 수정해야 합니다.
"scripts": { "start": "NODE_ENV=production supervisor --harmony -i views/ ./bin/www", "test": "NODE_ENV=test supervisor --harmony -i views/ ./bin/www" },
보시다시피 위에 두 개의 시작이 있습니다. 명령 중 하나는 프로덕션 머신용으로 NODE_ENV=production
을 설정하고, 다른 하나는 테스트 머신용으로 NODE_ENV=test
를 설정합니다. 프로젝트에서 config-lite는 test.js 구성을 가져와 default.js의 구성과 병합합니다. 동일한 개체가 있으면 default.js의 구성을 덮어씁니다. 위의 예에는 모두 mysql 개체가 있으므로 여기서는 test.js의 개체가 우선합니다. NODE_ENV=production
,一条是针对测试机,设置了NODE_ENV=test
,当我们使用npm test启动项目的时候,config-lite会去抓取test.js配置,并且会与default.js里配置去合并,如果有相同的对象,会覆盖default.js里的配置。如上例子都有mysql的对象,那么这里会以test.js里的对象为准。
好了,下面来介绍一下如何在项目中使用config-lite模块,在app.js里代码如下:
// 省略... var config = require('config-lite')(__dirname); // 省略... app.use(session(config.session)); console.log("mysql服务器:" + config.mysql.host); // display mysql-config // 省略...
引入之后,可以直接使用配置文件中的配置对象。
2. 生产环境
那么在生产环境中,如何使用呢?上面已经介绍了config-lite基本原理以及用法,在生产环境的时候,我们只需要在生产机环境中config目录下新建production.js文件,然后使用启动命令npm start即可。
为了避免测试环境以及生产坏境配置文件混淆,可以通过.gitignore文件忽略配置文件,添加如下:
# config config/* !config/default.*
这样,git会忽略除了default.js之外的配置文件,在本地开发环境中,可以创建多个配置文件测试使用,只需设置对应的环境变量即可。需要注意的是环境变量名需同配置文件名一样。
3. windows环境
也许你是一个多系统环境开发者,可能同时在Linux和windows环境下开发,由于windows下设置环境的变量的语法不太一样,所以可以在package.json启动命令中再加上两句,如下:
"scripts": { "start": "NODE_ENV=production supervisor --harmony -i views/ ./bin/www", "test": "NODE_ENV=test supervisor --harmony -i views/ ./bin/www", "winStart": "SET NODE_ENV=production&&supervisor --harmony -i views/ ./bin/www", "winTest": "SET NODE_ENV=test&&supervisor --harmony -i views/ ./bin/www" }
这样,如果部署在windows环境下,在config目录下新建production.js配置文件,启动命令npm winStart;
rrreee
소개 후에는 구성 파일에서 구성 개체를 직접 사용할 수 있습니다. 테스트 환경과 프로덕션 환경 구성 파일 간의 혼동을 피하기 위해 .gitignore 파일을 통해 구성 파일을 무시하고 다음을 추가할 수 있습니다. 🎜🎜3. Windows 환경🎜🎜🎜🎜아마도 멀티 시스템 환경 개발자이고 Linux와 Windows 환경에서 동시에 개발할 수도 있습니다. Windows에서는 환경 변수 설정 구문이 다르기 때문에 설정하면 됩니다. in package.json 시작 명령에 다음과 같이 두 문장을 추가합니다. 🎜rrreee🎜이 방법으로 Windows 환경에 배포하는 경우 config 디렉터리에 새 Production.js 구성 파일을 만들고npm 명령을 시작합니다. winStart;
Linux 또는 Unix 계열 환경에 배포된 경우 Production.js를 만들고 npm start 명령을 시작할 수도 있습니다. 🎜🎜위 내용은 제가 여러분을 위해 정리한 내용입니다. 앞으로 도움이 되길 바랍니다. 🎜🎜관련 기사: 🎜🎜🎜React Native Flexbox 레이아웃의 자세한 해석🎜🎜🎜🎜vue 단일 파일의 참조 경로에 대한 방법은 무엇입니까? 🎜🎜🎜🎜weex🎜🎜의 webpack.config.js 변환에 대한 자세한 소개위 내용은 Node를 사용하여 파일을 구성하는 방법(자세한 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!