Express应用程序找不到要从中加载脚本的node_modules文件夹

时间:2016-02-04 18:49:20

标签: node.js express

我对网络服务器的行为方式一无所知,所以我希望有人可以帮助我。 如果有人能指出我关于以下主题的文章或文档,也会很好。

基本上我尝试使用Angular2,Expressjs以及显然是node.js来开发webapp。

我已经成功开发了一些没有附加后端的基本Angular2应用程序,它运行良好。 但是,现在我尝试从我的服务器向浏览器发送index.html文件(其中包含一个引用Angular组件的标记)。

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

你可以在这里找到html:http://pastebin.com/utMHk8Pe

但是,即使node_modules包与server.js和index.html位于同一层次结构级别,转到localhost:8080 / test也会为我的html标头中的node_modules脚本文件提供404。

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

现在,当我通过以下链接http://localhost:54720/testapp/index.html运行我的index.html文件时,一切正常。 不知怎的,它在端口54720找到了node_modules,但没有找到8080(这是我让快速应用程序监听的端口)。

Q2:为什么我的服务器无法在我监听的端口找到node_modules文件夹?

正如我已经说过的,我对node.js和webservers一般都是新手。 我非常感谢任何帮助! 即使将我链接到一篇可能有用的文章也会对我有所帮助,因为我不知道该怎么做,因为我不知道谷歌会做些什么。

1 个答案:

答案 0 :(得分:1)

您需要定义静态文件夹才能启用此功能。像这样:

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

希望它可以帮到你, 亨利