reactjs - 如何修改create-react-app中的index.js文件

标签 reactjs create-react-app

我正在尝试修改create-react-app预配置项目中的入口点文件index.js。我试图将项目连接到 mongodb,在 index.js 中添加 body-parser 和 api 文件,但在编辑 index.js 时出现错误。

索引.js:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
ReactDOM.render(App, document.getElementById('root'));

我的代码:

const express = require('express');
const app = express()
const bodyParser = require('body-parser')
const mongoose = require('mongoose')

mongoose.connect('mongodb://localhost/treedb')
mongoose.Promise = global.Promise
app.use(bodyParser.json())

//initialize routes
app.use('/api', require('./routes/api'))

错误:

TypeError: Cannot read property 'prototype' of undefined
in file node_modules/express/lib/response.js:58:

var res = Object.create(http.ServerResponse.prototype);

当我使用“npm start”启动应用程序并运行“react-scripts start”时,会发生此错误。当我运行“node index.js”时,我的代码很好,但导入语句却导致错误。有什么想法如何编辑index.js 文件而不导致错误吗?谢谢。

最佳答案

正如 @skyboyer 所提到的,您似乎正在使用 Create React App 来达到它不该达到的目的。 Create-React-App 是一个工具包,使您能够快速开始开发基于 React 的 Web 应用程序,而不必担心设置和维护 Webpack 配置等的麻烦。您似乎正在尝试设置一个连接到 MongoDB 的 API 服务器。

如果您只想创建一个 Express 应用程序作为 API 服务器,而不需要任何基于 React 的前端,则不应使用 CRA 来设置它。

最有可能的是,您需要同时拥有:客户端 Web 应用程序(基于 React)和服务器端 API 应用程序(基于 Express),在这种情况下,您有两个选择:

  1. 相同的项目,但有两个源目录。您可以在与 src 相同的级别创建一个文件夹,但使用不同的名称:例如 dataSrc。然后你可以修改你的 package.json 来启动两个服务器。我不建议这样做,除非是出于学习目的,因为这对您来说维护起来会变得很棘手,并且当您需要捆绑并交付给产品时,这将变得很棘手。
  2. 为您的 API 服务器创建一个独立于您的网络应用的新项目。

在这两种情况下,为了进行开发,您需要将 Create React App 配置为 proxy the data requests到您的 API 服务器。

希望这能让您清楚一些。如果您仍然感到困惑,请随时要求澄清。

关于reactjs - 如何修改create-react-app中的index.js文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53167283/

相关文章:

javascript - ShallowWrapper 只能包装有效元素 - Enzyme Reactjs

css - preserve-3d 不适用于子元素

javascript - 通过setState正确修改ES6 Map

reactjs - 使用 react-app-rewired : server start error 升级到 create-react-app 版本 4.0

reactjs - 错误 : Failed to load parser 'babel-eslint' declared in '.eslintrc' : Cannot find module 'babel-eslint' in create-react-app

javascript - 如何使用带有 expo 的 React-Navigation 正确键入作为 Prop 传递的导航

reactjs - 如何在 react 中使用 API 调用测试组件?

javascript - create-react-app 的开发服务器不会自动刷新

javascript - 创建 react 应用程序错误: Cannot find module './locale'

reactjs - 如何更改创建 react 应用程序的基本网址?