var express = require('express') - 无法读取未定义的属性'prototype'

8

我是一个新手,刚开始接触Express,如果这个问题比较简单,请多多包涵。我有一个React项目,现在想要添加Express。我添加了一个以以下代码行开始的.js文件来导入express:

var express = require('express');

然而,这会出现错误。
错误。
request.js:31 Uncaught TypeError: Cannot read property 'prototype' of undefined
    at Object.<anonymous> (request.js:31)
    at __webpack_require__ (bootstrap 2c79a52…:555)
    at fn (bootstrap 2c79a52…:86)
    at Object.<anonymous> (express.js:20)
    at __webpack_require__ (bootstrap 2c79a52…:555)
    at fn (bootstrap 2c79a52…:86)
    at Object.<anonymous> (index.js:11)
    at __webpack_require__ (bootstrap 2c79a52…:555)
    at fn (bootstrap 2c79a52…:86)
    at Object.<anonymous> (myNewFile.js:1)

注意:myNewFile.js的第1行是var express = require('express');

我尝试过运行npm install express,所以我应该可以访问express并且它应该是最新的,但似乎我仍然遇到了这个错误。

我该如何解决这个错误,为什么会出现这种情况?

谢谢。


1
可能是重复的问题,与 https://stackoverflow.com/questions/38191695/express-uncaught-typeerror-cannot-read-property-prototype-of-undefined-req 相同。 - Mahesh Singh Chouhan
你在什么时候遇到了错误?是在你的package.json文件中吗?你是如何打包所有这些内容的?我的意思是,Express是后端,ReactJS是前端--为什么要在同一个项目中使用它们? - Dave Newton
可能是重复的问题 https://stackoverflow.com/questions/44292704/cannot-find-module-fs-using-simple-json-loader - oklas
@MaheshSinghChouhan 谢谢你提供的链接,但阅读后发现问题与 require('express') 无关,而是与 app.get() 相关。目前我在我的文件中并没有使用 app.get(),所以我不认为这是同样的问题。 - Rbar
1
@user1149244 我最终意识到我需要在后端使用Express,但是错误地尝试将其添加到前端。如果您(像我一样)通过尝试设置此React路由器+ Express项目(github.com/mrpatiwi/routed-react)而遇到此问题,我建议改用此项目(https://github.com/supasate/connected-react-router)。希望这可以帮助到您! - Rbar
显示剩余3条评论
1个回答

5

您需要在webpack配置中指定target

target: 'node'

这只能在服务器端作为node.js程序运行。


1
谢谢您的建议。我刚把这个加到了我的 webpack.config.js 文件中,但仍然遇到同样的错误。 - Rbar
你如何在浏览器中或作为节点程序运行包。它将以节点程序的方式工作,如 node server.js。不适用于浏览器。 - oklas
你需要知道你所构建的内容。有些东西可能只在浏览器中工作,你需要使用 target 'web'。另一些东西可能只在服务器上工作,需要使用 target 'node' - oklas
我能够通过使用 target 'node' 将代码放入外部 JS 文件中,并在服务器上运行吗?如果是真的,我只需要安装 CLI 的 webpack 并进行配置就可以了吗? - Gawey
嘿,Gawey。我无法理解你的问题。也许你需要提供更详细的问题描述和配置示例。 - oklas
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接