Express应用程序找不到node_modules文件夹来加载脚本

我对web服务器的一般performance有点新,所以我希望有人能帮助我一些问题。 如果有人能指点我一篇关于下列话题的文章或者一些文档,那也不错。

基本上我试图用Angular2,Expressjs和显然node.js来开发一个webapp。

我已经成功开发了一些基本的Angular2应用程序,没有后端附加到它,工作正常。 不过,现在我试图从我的服务器发送index.html文件(其中包含一个引用Angular组件的标签)到浏览器。

app.get('/test', function(req, res) { res.sendfile('index.html'); }); 

你可以在这里findhtml: http : //pastebin.com/utMHk8Pe

但是,尽pipenode_modules包与server.js和index.html位于同一个层次,但是在我的html头文件中,去localhost:8080 / test会给我一个404的node_modules脚本文件。

Q1:为什么我的服务器找不到node_modules文件夹?

现在,当我通过以下链接运行我的index.html文件时, http:// localhost:54720 / testapp / index.html ,一切正常。 不知何故,它发现在端口54720 node_modules但不是8080(这是我使快速应用程序侦听的端口)。

问题2:为什么我的服务器找不到在我监听的端口上的node_modules文件夹?

正如我已经说过的,对于node.js和一般的web服务器,我确实是一个新手。 我会很感激任何帮助! 即使把我和一篇可能有用的文章联系起来也会帮助我,因为我不知道什么是Google。

您需要定义一个静态文件夹来启用它。 像这样的东西:

 var express = require('express'); var app = express(); (...) app.use('/static', express.static('public')); 

这样,您将能够为Angular2提供所需的静态文件,这些文件位于node_modules (angular2,systemjs和rxjs)下。

有关更多详细信息,请参阅此文档: http : //expressjs.com/en/starter/static-files.html 。

希望它能帮助你,Thierry