用reactjs expressjs mongodb和nodejs开发的Web应用程序的哪一部分是服务器端,哪一部分是客户端

时间:2019-05-24 00:43:02

标签: javascript reactjs express webpack

当前正在使用MERN(mongodb,expressjs,reactjs,nodejs)开发Web应用程序,并且由于一切都相互依赖,因此我陷入了什么部分将留在服务器(服务器端)以及哪一部分是将在发出请求时发送给客户端(客户端)。

我正在使用https://github.com/keithweaver/MERN-boilerplate这种架构作为基础。

例如,这是server.js文件的内容:

const express = require('express');
const fs = require('fs');
const historyApiFallback = require('connect-history-api-fallback');
const mongoose = require('mongoose');
const path = require('path');
const webpack = require('webpack');
const webpackDevMiddleware = require('webpack-dev-middleware');
const webpackHotMiddleware = require('webpack-hot-middleware');

const config = require('../config/config');
const webpackConfig = require('../webpack.config');

const isDev = process.env.NODE_ENV !== 'production';
const port  = process.env.PORT || 8080;


// Configuration
// ================================================================================================

// Set up Mongoose
mongoose.connect(isDev ? config.db_dev : config.db);
mongoose.Promise = global.Promise;


const app = express();
app.use(express.urlencoded({ extended: true }));
app.use(express.json());

// API routes
require('./routes')(app);

 app.use(express.static(path.resolve(__dirname, '../dist')));
 app.get('*', function (req, res) {
   res.sendFile(path.resolve(__dirname, '../dist/index.html'));
   res.end();
 });


app.listen(port, '0.0.0.0', (err) => {
  if (err) {
    console.log(err);
  }

  console.info('>>>  Open http://0.0.0.0:%s/ in your browser.', port);
});

module.exports = app;

这部分代码会在网站加载后发送给客户端。我们可以看到,如果尝试使用mongoose连接到数据库,则会从客户端建立与数据库的连接。 当所有这些部分(react.js文件和express.js文件)都相互依赖时,我感到很困惑,不要迷失其行为。

0 个答案:

没有答案