, поэтому у меня есть файл .env в моем проекте TypeScript-node. Он содержит переменную сеанса, такую как:
SESSION_SECRET= EXAMPLEkeyHERE1
BIRD_STRIPE_KEY= TheseAreNotReAlKeYS
CIRC_STRIPE_KEY= XXXXXX1232abc
и импорт с использованием:
import session = require('express-session');
const { SESSION_SECRET, PORT } = process.env;
и мое приложение. js выглядит так:
if (!SESSION_SECRET) {
logger.error('No client secret. Set SESSION_SECRET environment variable.');
process.exit(1);
}
/**
* @description Create Express server.
*/
const app = express();
if (IS_DEVELOPMENT) {
/**
* @description Error Handler. Provides full stack - remove for production
*/
app.use(errorHandler());
}
/**
* @description Express configuration
*/
app.set('port', PORT || 3000);
app.use(
cors(),
compression(),
express.json(),
session({
secret: SESSION_SECRET,
resave: true,
saveUninitialized: false
})
);
/**
* @description Express routers
*/
const routers = {
api: express.Router(),
provider: express.Router()
};
routers.api.use([routers.provider]);
routers.provider.use('/provider', [routes.Bird, routes.Circ, routes.Lime, routes.Spin, routes.Tier]);
/**
* @description These line will add /api/v{version} route prefix in every api requests.
*/
app.use(`/api/v${API_CONFIG.versions.v1}`, routers.api);
/**
* @description These lines are including error404 exported module and it will get called when routes not found.
*/
app.use([middleware.Error404]);
/**
* @var server
* @description Start Express server.
*/
app.listen(app.get('port'), () => {
console.log('App is running at http://localhost:%d in %s mode', app.get('port'), app.get('env'));
console.log('Press CTRL-C to stop\n');
});
когда я нажимаю npm start
, я получаю эту ошибку:
> @ruler-mobility/ruler@1.0.0 serve /Users/macbook/Desktop/develop/rails-projects/ruler
> node src/app.js
error: No client secret. Set SESSION_SECRET environment variable. {"service":"user-service"}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ruler-mobility/ruler@1.0.0 serve: `node src/app.js`
npm ERR! Exit status 1
, чтобы вы могли видеть, что ошибка регистрируется с первого оператора if в коде. Может также произойти сбой при конфигурации express.
Я попытался установить SESSION_SECRET
в виде строки SESSION_SECRET= "EXAMPLEkeyHERE1"
в моем файле .env, но это не имело значения. Может кто-нибудь сказать мне, что я делаю не так здесь?