MEAN IO:需要配置验证错误 JWT_SECRET

Posted

技术标签:

【中文标题】MEAN IO:需要配置验证错误 JWT_SECRET【英文标题】:MEAN IO : Config validation error JWT_SECRET is required 【发布时间】:2019-03-05 18:32:04 【问题描述】:

我正在从 mean.io 克隆设置一个新的平均项目。在安装 npm 包并启动 mongod 之后。我运行npm start 它给了我这个错误。

Error: Config validation error: child "JWT_SECRET" fails because ["JWT_SECRET" is required]

这是我的config.js

const Joi = require('joi');

// require and configure dotenv, will load vars in .env in PROCESS.ENV
require('dotenv').config();

// define validation for all the env vars
const envVarsSchema = Joi.object(
  NODE_ENV: Joi.string()
    .allow(['development', 'production', 'test', 'provision'])
    .default('development'),
  SERVER_PORT: Joi.number()
    .default(4040),
  MONGOOSE_DEBUG: Joi.boolean()
    .when('NODE_ENV', 
      is: Joi.string().equal('development'),
      then: Joi.boolean().default(true),
      otherwise: Joi.boolean().default(false)
    ),
  JWT_SECRET: Joi.string().required()
    .description('JWT Secret required to sign'),
  MONGO_HOST: Joi.string().required()
    .description('Mongo DB host url'),
  MONGO_PORT: Joi.number()
    .default(27017)
).unknown()
  .required();

const  error, value: envVars  = Joi.validate(process.env, envVarsSchema);
if (error) 
  throw new Error(`Config validation error: $error.message`);


const config = 
  env: envVars.NODE_ENV,
  port: envVars.SERVER_PORT,
  mongooseDebug: envVars.MONGOOSE_DEBUG,
  jwtSecret: envVars.JWT_SECRET,
  frontend: envVars.MEAN_FRONTEND || 'angular',
  mongo: 
    host: envVars.MONGO_HOST,
    port: envVars.MONGO_PORT
  
;

module.exports = config;

不确定问题出在哪里。我没有改变任何东西,我只是从官方 mean.io 网站上克隆了一个。安装 npm 包并启动 mongodb。

【问题讨论】:

您已添加env 文件以读取变量? 【参考方案1】:

.env 文件添加到根文件夹,内容如下:

NODE_ENV=development
SERVER_PORT=4040
JWT_SECRET=0a6b944d-d2fb-46fc-a85e-0295c986cd9f
MONGO_HOST=mongodb://localhost/mean
MEAN_FRONTEND=angular

您可能会在根目录中找到一个.env.example 文件,您可以简单地将其重命名为.env。可以在here 找到一个示例.env.example 文件。

【讨论】:

以上是关于MEAN IO:需要配置验证错误 JWT_SECRET的主要内容,如果未能解决你的问题,请参考以下文章

mean.io - 错误:“请求实体太大”。如何在meanio模块之外增加bodyParser限制?

将 socket.io 与 Mean 集成时反复出现 404 错误

Mongo使用护照身份验证创建用户错误

未捕获的 ReferenceError:未定义角度 - Mean.IO

错误:验证 app.json 中的字段时出现问题。请参阅 https://docs.expo.io/workflow/configuration/ • 不应有其他属性“配置”

来自守护程序的错误响应:获取 https://nvcr.io/v2/:未授权:需要身份验证