【发布时间】:2019-02-26 15:25:32
【问题描述】:
我正在尝试在 Azure 上部署 MERN 应用程序(React.js 作为客户端,Node.js 作为服务器)。我创建了一个 Cosmos DB 帐户和数据库 (MongoDB),并将我的 Node.js 应用程序连接到该数据库。
我无法在我的 Node.js 和 React.js 应用程序之间创建通信。
我创建了我的 React.js 应用程序的构建并粘贴到 Node.js 应用程序中并部署了 Node.js 应用程序。
我遇到了问题
'无法获取/'
我还尝试通过将整个 React.js 应用程序粘贴到 Node.js 应用程序的结构中来手动部署应用程序--
|- node-app
|- client
|- react-app
|- node-app rest files...
我不知道如何在生产环境中获取环境变量
我的 app.js 在下面--
require('dotenv').config();
require('./config/database.config');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(express.static(path.join(__dirname, 'build')));
app.get('*', (req,res) =>{
res.sendFile(path.join(__dirname+'/build/index.html'));
});
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
我的数据库配置文件如下--
var mongoose = require('mongoose');
mongoose.connect(
process.env.DB_CONN,
{
auth :{user : process.env.DB_USER, password : process.env.DB_PW},
useNewUrlParser: true
})
.then(() => {
console.log("Successfully connected to the database");
}).catch(err => {
console.log('Could not connect to the database. Exiting now...', err);
process.exit();
});
【问题讨论】:
-
您首先需要在 azure 应用程序的 Web 应用程序设置中设置环境变量
标签: node.js reactjs mongodb azure azure-web-app-service