调试测试时如何在app.js in node.js中使用env变量?
How to use env variable in app.js in node.js when debugging test?
当我在 visual studio 上调试时 app.js 是 运行 在测试代码和 env 配置文件之前
如何在 app.js 上设置环境?
如果我在终端上部署或测试,我可以在 app.js 上使用 envs 并从日志中检查 env 但不能在调试时使用。
a.test.js
const { describe, it } = require('mocha');
const request = require('supertest');
const { expect } = require('chai');
const { setConfig } = require('../../../setConfig');
const { app } = require('../../../../app');
setConfig();
describe('transactionController', () => {
it('test', async () => {
await request(app)
.post(`/`)
.set('Accept', 'application/json')
.type('application/json')
.send()
.expect(200);
});
setConfig.js
const { config } = require('../config/config');
module.exports.setConfig = () => {
console.log(`setConfig : ${JSON.stringify(config.debug)}`);
const { debug } = config;
const { NODE_ENV, CACHE_HOST, CACHE_PORT } = debug;
process.env.NODE_ENV = NODE_ENV;
process.env.CACHE_HOST = CACHE_HOST;
process.env.CACHE_PORT = CACHE_PORT;
};
config.js
module.exports.config = {
debug: {
NODE_ENV: 'debug',
CACHE_HOST: '127.0.0.1',
CACHE_PORT: '6379'
},
};
app.js
const serverless = require('serverless-http');
const express = require('express');
const app = express();
app.set('port', 3000);
console.log(`app : env : ${process.env.NODE_ENV}`);
if (process.env.NODE_ENV === 'prod' || process.env.NODE_ENV === 'dev') {
app.listen(app.get('port'), () => {
console.log(`Server running on ${app.get('port')} port`);
});
module.exports.app = serverless(app);
} else {
module.exports.app = app;
}
在您的 launch.json(您设置调试器的文件)中,您可以将其添加到配置中:
"env": {
"NODE_ENV": "debug",
"CACHE_HOST": "127.0.0.1",
"CACHE_PORT": "6379"
}
它会在您启动调试器时添加您想要的所有环境变量
当我在 visual studio 上调试时 app.js 是 运行 在测试代码和 env 配置文件之前
如何在 app.js 上设置环境?
如果我在终端上部署或测试,我可以在 app.js 上使用 envs 并从日志中检查 env 但不能在调试时使用。
a.test.js
const { describe, it } = require('mocha');
const request = require('supertest');
const { expect } = require('chai');
const { setConfig } = require('../../../setConfig');
const { app } = require('../../../../app');
setConfig();
describe('transactionController', () => {
it('test', async () => {
await request(app)
.post(`/`)
.set('Accept', 'application/json')
.type('application/json')
.send()
.expect(200);
});
setConfig.js
const { config } = require('../config/config');
module.exports.setConfig = () => {
console.log(`setConfig : ${JSON.stringify(config.debug)}`);
const { debug } = config;
const { NODE_ENV, CACHE_HOST, CACHE_PORT } = debug;
process.env.NODE_ENV = NODE_ENV;
process.env.CACHE_HOST = CACHE_HOST;
process.env.CACHE_PORT = CACHE_PORT;
};
config.js
module.exports.config = {
debug: {
NODE_ENV: 'debug',
CACHE_HOST: '127.0.0.1',
CACHE_PORT: '6379'
},
};
app.js
const serverless = require('serverless-http');
const express = require('express');
const app = express();
app.set('port', 3000);
console.log(`app : env : ${process.env.NODE_ENV}`);
if (process.env.NODE_ENV === 'prod' || process.env.NODE_ENV === 'dev') {
app.listen(app.get('port'), () => {
console.log(`Server running on ${app.get('port')} port`);
});
module.exports.app = serverless(app);
} else {
module.exports.app = app;
}
在您的 launch.json(您设置调试器的文件)中,您可以将其添加到配置中:
"env": {
"NODE_ENV": "debug",
"CACHE_HOST": "127.0.0.1",
"CACHE_PORT": "6379"
}
它会在您启动调试器时添加您想要的所有环境变量