Javascript 使用express时未找到模块

Javascript 使用express时未找到模块,javascript,typescript,express,npm,electron,Javascript,Typescript,Express,Npm,Electron,我想在electron应用程序中公开REST服务,我想在electron中使用expressJS,正如教程中所说,我添加了express和@types/express。我试图公开一个“get”,但当我构建并运行它时,它抛出以下命令 使用ng build--prod运行 这是我第一次想做这种事情,所以如果我不知道smth,请原谅 package.json: > { "name": "angular-electron", "version": "0.0.0", "main": "m

我想在electron应用程序中公开REST服务,我想在electron中使用expressJS,正如教程中所说,我添加了express和@types/express。我试图公开一个“get”,但当我构建并运行它时,它抛出以下命令

使用
ng build--prod运行

这是我第一次想做这种事情,所以如果我不知道smth,请原谅

package.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')
  })

您的解决方案中现在有2个应用程序:

1) 客户端应用程序:在浏览器环境中运行的angular

2) 服务器应用程序:在节点环境中运行的express

构建angular应用程序(使用ng build)时,必须确保angular build中不包含express应用程序文件。express使用的节点模块在浏览器环境中不可用

你可以做:

1) 将express源从src文件夹移到项目根目录中

// server.js
var express = require('express');
var app = express();

app.use(express.static('dist')); // or where the output of the ng-build is placed

app.listen(3000, function() { console.log('Server running on port 3000'); });
2) 运行
ng build

3) 从项目根目录运行
node server.js
。这将继续运行


4) 转到
localhost:3000
并查看您的应用程序我已经尝试了互联网上的所有解决方案,但实际上没有任何效果。我的项目使用的是angular universal,它可以在服务器端快速呈现应用程序。 一天早上,我突然发现这个错误,我的项目没有运行 浏览器:{ “fs”:错误 } 有人建议修理。这甚至不起作用。花了我一整天的时间。 我开始分析我的旧代码,发现我没有在package.json上添加任何内容,因此它不可能是任何其他依赖项。 当我发现出了什么问题时,真是愚蠢透顶。我意外地将路由器从组件中的express导入

怎么了

import { Router } from 'express';
应该是什么

import { Router } from '@angular/router';

哇,伙计,那块错误信息打破了我的屏幕。似乎您没有安装所有的软件包,如果您使用的是8.NodeJS 8.11.3之前的
NodeJS
版本并尝试了npm安装--save,您是否尝试过
npm安装--save。没有什么不同于我所展示的:(您的文件名是
Package.json
还是
Package.json
,因为它应该是一个小写字母。另一件事可能是您在局部变量中没有指向
NodeJS
的正确路径。很抱歉误解,我会立即更改它,它是Package.json。请尝试删除node_模块和Package-lock.js。)使用npm iThanks dude重新安装deps,现在两次拯救了我的一天!谢谢@biswarup,我犯了同样的错误,从express导入路由器。太感谢了!我都没意识到我也这么做了。泰!
import { Router } from '@angular/router';