Javascript 如何在Node.js服务器和React客户端应用程序之间共享config.file?

Javascript 如何在Node.js服务器和React客户端应用程序之间共享config.file?,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我正在尝试创建一个通用配置文件,该文件将在服务器和客户端代码之间共享 描述了一个很好的示例,但仅对Node.js部分有效 有人有这样做smth的经验吗?我感谢你的建议和建议 您可以定义.env文件并在webpack和node.js中使用。包将环境变量从.env文件加载到process.env中。要在前端使用env变量,必须添加插件。例如 文件夹结构: ├── _server | ├── index.js ├── _front-end | ├── webpack.js | └── sr

我正在尝试创建一个通用配置文件,该文件将在服务器和客户端代码之间共享

描述了一个很好的示例,但仅对Node.js部分有效


有人有这样做smth的经验吗?我感谢你的建议和建议

您可以定义
.env
文件并在webpack和node.js中使用。包将环境变量从
.env
文件加载到
process.env
中。要在前端使用env变量,必须添加插件。例如 文件夹结构:

├── _server
|   ├── index.js
├── _front-end
|   ├── webpack.js
|   └── src
└── .env
node.js:

require('dotenv').config({ path: '../.env' });
console.log(process.env.CONFIG); // test

网页:

const DotenvWebpack = require('dotenv-webpack');
require('dotenv').config({ path: '../.env' });
module.exports = {
...
plugins: [... new DotenvWebpack() ...]
...
}

客户机和服务器代码是否在单个项目中

使用dotenv将是一个解决方案,但如果您不想使用它,这可能会奏效

server/config/index.js[服务器配置]

const path=require(“路径”);
const rootPath=path.resolve(_dirname,“../”);
const serverPath=path.resolve(rootPath,“server”);
const env=process.env.NODE|u env||“生产”;
常量配置={
发展:{
阶段:“发展”,
根:根路径,
主机:“本地主机”,
端口:process.env.port | | 3001,
db:{//您不希望客户端代码知道这一点。
主机:“本地主机”,
港口:3306,
数据库:“数据库用户”,
用户:“管理员”,
密码:“已通过”,
},
//等等。。
}
module.exports=config[env];
src/config/index.js[客户端配置]

从“../../config”导入{host,port}”;
常量配置={
主办
港口,
特定于客户端的配置:“配置”
}
module.exports=config;

我更喜欢使用dotenv()用于此的模块。user task runner、Grunt、Gulp或awesome webpack。有许多插件可供您执行任何操作。我的客户端和节点是两个独立的项目。如果这样,客户端配置文件中的第一行应该修改,以便它引用服务器端配置脚本的正确路径。我有以下项目st结构:-server;-client react应该在哪里定义
.env
文件?I,添加了项目结构。当我试图从与
client react
server
相同的级别读取
.env
文件时,它会给出以下错误:
错误:enoint:没有这样的文件或目录,请在根服务器目录中打开“/app/.env
”Vectory它在客户端工作得很好,你应该添加dotenv webpack插件。它对我很有效。我在很多项目中使用这种方法。可能webpack配置没有应用。
const DotenvWebpack = require('dotenv-webpack');
require('dotenv').config({ path: '../.env' });
module.exports = {
...
plugins: [... new DotenvWebpack() ...]
...
}