如何将ReactJS添加到现有的node.js后端应用程序

瓦迪姆

我有一个非常简单的node.js API

结构体:

| project-name
|  public
|     index.html
|     ... some static js/css
|  app.js
|  package.json

app.js

var express = require('express'),
  bodyParser = require('body-parser'),
  http = require('http');

var app = module.exports = express();
app.set('port', process.env.PORT || 8000);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: true
}));
app.use(express.static(path.join(__dirname, 'public')));

app.route('/api/projects').get(...).post(...)
app.route('/api/sales').get(...).post(...)

app.get('*', function(req, res) {
  res.sendFile(path.join(__dirname, 'public', 'index.html'));
});

// Starting express server
http.createServer(app).listen(app.get('port'), function() {
  console.log('Express server listening on port ' + app.get('port'));
});

运行服务器- node app.js

注意:这是一个学习项目,不用于生产。我只想弄清楚它们如何协同工作。

现在,我想添加ReactJS到该项目(精简为public/index.html)。但是我仍然想使用app.js具有相同端口的api来运行服务器。

我知道如何进行“生产构建”(将所有jsx编译为js并用作简单脚本)。我的问题只是关于开发服务器。

我想要:

  • 仅使用一个命令(node app.js其他命令)运行服务器(api)和客户端(reactjs nodemon app.js
  • 在脚本更改后进行自动重装(似乎nodemon可以做到)
瓦迪姆

以纯HTML安装React(快速方式,仅开发模式)

这不是产品的解决方案,但是它将在第一次测试中使用-仅将reactbabel(对于JSX)包含到您的产品中index.html

// index.html
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.2.1/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.2.1/react-dom.min.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="/client/app.jsx" type="text/babel"></script>

现在您可以尝试react

// app.jsx
var App = React.createClass({
  render: function() {
    return (
      <div className="app">
      Hello, world!
      </div>
    );
  }
});

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

但在这种情况下,你不能使用包通过安装npm(不能使用import XXX from "YYY";建),您必须通过将它们包括<script>标签(如reactreact-dom以上)

使用NodeJs(CLI)安装React

这样,您可以分别运行前端和后端,但是将文件保持在一起。

Express和React文件位于同一台机器上,Express承担着双重职责:它服务于React文件,还服务于API请求。

https://daveceddia.com/create-react-app-express-production/

要使用CLI安装React,还需要安装NodeJS。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将Angle 4添加到现有的node.js应用程序

如何将LiveView添加到现有的Elixir / Phoenix应用程序?

如何将 React 添加到现有的 Electron 应用程序中?

如何将 vue.js 客户端添加到现有的 node.js api?

如何将Angular 2.0添加到现有的ASP.NET MVC应用程序

Xcode:如何将Unity游戏添加到现有的iOS应用?

如何将React.js添加到现有的.NET Core

将 Ember.js 前端应用程序添加到 Node.js 后端应用程序

如何将 vuetify 对话框添加到现有应用程序中?

如何将平台添加到现有Flutter应用程序/项目中?

如何将iPad UI添加到现有应用程序?

如何将Web API添加到现有的ASP.NET MVC(5)Web应用程序项目中?

如何将Web API添加到现有的ASP.NET MVC 4 Web应用程序项目中?

如何将Azure AD身份验证添加到现有的ASP.NET MVC应用程序中?

根据reactjs中的条件将CSS添加到现有的已应用CSS?

如何将Vue.js添加到现有的ASP .NET Core 2.0 MVC项目中?

如何将现有的pdf文件添加到我的React.js页面?

Node JS后端和MongoDB for Java Android应用程序

如何将应用程序资源添加到应用程序的C#后端而不是XAML文件中?

将Redux添加到现有的React应用程序

将GWT添加到现有的Maven Web应用程序

使用 .Net 4 将 MVC 项目添加到现有的 Web 应用程序

将TypeScript添加到现有的create-react-app应用程序

将 ruby on rails 添加到现有的 React Native 应用程序

尝试将 @ionic/angular 添加到现有的 angular 12 应用程序失败

将vueJS添加到现有的angular应用程序中

将websockets添加到现有的php应用程序

将刺激和导入映射添加到现有的 Rails 6.1 应用程序

将MeteorJS添加到现有的AngularJS / MEAN堆栈应用程序