javascript - Node server.js - 无法获取/

标签 javascript html css angularjs node.js

我目前正在做一个元素,该元素是一个使用 Angular 动态更改 DOM 元素的网页。元素中有一个公共(public)文件夹,其中包含所有 HTML、CSS、JavaScript 和 JSON 对象。该元素必须是分布式的,所以我使用 Node 从本地主机运行。这是我的 server.js 代码:

var express = require('express');
var app = express();
var path = require('path');

app.get('/', function(req,res){
   res.sendFile(path.join(__dirname + '/public')); 
});

app.listen(8080, function(){
    console.log((new Date()) + " Server is listening on port 8080");
});   

当我前往 localhost:8080 时,它只是说无法获取/。我哪里错了?

最佳答案

使用 express 提供静态文件的正确方法如下:

//Look for statics first
app.use(express.static(path.join(__dirname, 'public')));
//Return the index for any other GET request
app.get('/*', function (req, res) {
    res.sendFile('index.html', {root: path.join(__dirname, 'public')});
});

编辑:在旁注中,可能值得一提的是 app.get应该是在 Node 中声明的last 路由,因此如果您希望公开 API 端点,请在最终 app.get 之前(之前)声明它们.

关于javascript - Node server.js - 无法获取/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41460668/

相关文章:

Javascript 贪吃蛇游戏错误

javascript - 我该如何重构这段 JavaScript 代码?

html - 在 MAILGUN 上通过 cURL 发送 HTML

javascript - Jquery Loop 无限运行

asp.net - 注销后 CSS 渲染问题

css - 字体在 Chrome 和 Firefox 中损坏,但在 Safari 中运行良好

javascript - 根据其中的值设置背景 td(对于特定类的 td)

javascript - 如何动态地将 lodash 对象(过滤器对象)转换为 jquery 的 ListView

html - 使 div 粘在页面底部但保持流动

jquery - 不打破线和最大宽度