javascript - 使用 express 时找不到模块
问题描述
我想在电子应用程序中公开 REST 服务,并且我想将 expressJS 与电子一起使用,因为教程状态我添加了 express 和 @types/express。我试图公开一个“get”,但是当我构建并运行它时会抛出以下内容。
跑了 ng build --prod
ERROR in ./node_modules/cookie-signature/index.js Module not found: Error: Can't resolve 'crypto' in 'app\node_modules\cookie-signature' ERROR in ./node_modules/etag/index.js Module not found: Error: Can't resolve 'crypto' in 'app\node_modules\etag' ERROR in ./node_modules/destroy/index.js Module not found: Error: Can't resolve 'fs' in 'app\node_modules\destroy' ERROR in ./node_modules/etag/index.js Module not found: Error: Can't resolve 'fs' in 'app\node_modules\etag' ERROR in ./node_modules/express/lib/view.js Module not found: Error: Can't resolve 'fs' in 'app\node_modules\express\lib' ERROR in ./node_modules/mime/mime.js Module not found: Error: Can't resolve 'fs' in 'app\node_modules\mime' ERROR in ./node_modules/send/index.js Module not found: Error: Can't resolve 'fs' in 'app\node_modules\send' ERROR in ./node_modules/express/lib/application.js Module not found: Error: Can't resolve 'http' in 'app\node_modules\express\lib' ERROR in ./node_modules/express/lib/response.js Module not found: Error: Can't resolve 'http' in 'app\node_modules\express\lib' ERROR in ./node_modules/express/lib/request.js Module not found: Error: Can't resolve 'http' in 'app\node_modules\express\lib' ERROR in ./node_modules/express/lib/request.js Module not found: Error: Can't resolve 'net' in 'app\node_modules\express\lib' ERROR in ./node_modules/content-disposition/index.js Module not found: Error: Can't resolve 'path' in 'app\node_modules\content-disposition' ERROR in ./node_modules/express/lib/view.js Module not found: Error: Can't resolve 'path' in 'app\node_modules\express\lib' ERROR in ./node_modules/express/lib/response.js Module not found: Error: Can't resolve 'path' in 'app\node_modules\express\lib' ERROR in ./node_modules/express/lib/application.js Module not found: Error: Can't resolve 'path' in 'app\node_modules\express\lib' ERROR in ./node_modules/mime/mime.js Module not found: Error: Can't resolve 'path' in 'app\node_modules\mime' ERROR in ./node_modules/mime-types/index.js Module not found: Error: Can't resolve 'path' in 'app\node_modules\mime-types' ERROR in ./node_modules/send/index.js Module not found: Error: Can't resolve 'path' in 'app\node_modules\send' ERROR in ./node_modules/serve-static/index.js Module not found: Error: Can't resolve 'path' in 'app\node_modules\serve-static' ERROR in ./node_modules/destroy/index.js Module not found: Error: Can't resolve 'stream' in 'app\node_modules\destroy' ERROR in ./node_modules/iconv-lite/lib/streams.js Module not found: Error: Can't resolve 'stream' in 'app\node_modules\iconv-lite\lib' ERROR in ./node_modules/iconv-lite/lib/extend-node.js Module not found: Error: Can't resolve 'stream' in 'app\node_modules\iconv-lite\lib' ERROR in ./node_modules/send/index.js Module not found: Error: Can't resolve 'stream' in 'app\node_modules\send' ERROR in ./node_modules/body-parser/lib/read.js Module not found: Error: Can't resolve 'zlib' in 'app\node_modules\body-parser\lib'
这是我第一次做这种事情,如果我不知道,请原谅我......
包.json:
> {
"name": "angular-electron",
"version": "0.0.0",
"main": "main.js",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"electron": "electron .",
"electron-build": "ng build --prod && electron ."
},
"private": true,
"dependencies": {
"@angular/animations": "^6.0.4",
"@angular/common": "^6.0.4",
"@angular/compiler": "^6.0.4",
"@angular/core": "^6.0.4",
"@angular/forms": "^6.0.4",
"@angular/http": "^6.0.4",
"@angular/platform-browser": "^6.0.4",
"@angular/platform-browser-dynamic": "^6.0.4",
"@angular/router": "^6.0.4",
"@types/express": "^4.16.0",
"angular-svg-round-progressbar": "^2.0.0",
"core-js": "^2.5.4",
"express": "^4.16.3",
"js-sha256": "^0.9.0",
"rxjs": "^6.2.0",
"rxjs-compat": "^6.2.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.6.6",
"@angular/cli": "~6.0.7",
"@angular/compiler-cli": "^6.0.4",
"@angular/language-service": "^6.0.4",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"electron": "^2.0.2",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1",
"typescript": "~2.7.2"
}
}
该项目运行良好,直到我添加了快递部分,它起作用了。
var app = express()
app.get('/', function (req, res) {
res.send('Hello World')
})
解决方案
我已经尝试了互联网上所有可用的解决方案,但实际上没有任何效果。我的项目使用的是Angular Universal,它可以在服务器端呈现应用程序。一天早上突然我开始收到这个错误,我的项目没有运行。我尝试了浏览器:{“fs”:false }修复某人建议的。那甚至没有用。我花了一整天的时间。我开始分析我的旧代码,发现我没有在 package.json 上添加任何东西,所以它不可能是任何其他依赖项。当我发现有什么问题时,这简直是愚蠢的。我不小心在组件中从express导入了路由器
什么问题
import { Router } from 'express';
应该是什么
import { Router } from '@angular/router';
推荐阅读
- node.js - 我正在使用 node.js 并且我不断收到一条错误消息:错误:连接 ETIMEOUT ,
- javascript - 在 React 中单击按钮时停止计时器
- c - 查找字符串中的空格和字母数字字符 C语言
- html - 将 Discord 小部件放置在网页上的某个位置
- ruby-on-rails - 为什么 Rails 6(以及可能的其他版本)在 RoutingErrors 方面以不同的方式对待 / 路径?
- javascript - 如何保存 Cookie 并使用 Curl 登录?
- pycharm - PyCharm 中 ReST 的校对
- log4j2 - JUnit XML system-out 显示来自所有线程的日志
- swift - CloudKit 无法删除资产文件的无法理解的错误
- ios - 如何使用宽度的框架修饰符使多列列表中的 1 列具有相同的宽度,以保持灵活性