无法获取/在一个简单的节点文件中

时间:2016-02-09 15:27:30

标签: javascript angularjs express

我正在尝试做一本书的简单节点/角度示例。但是在加载页面时出现错误:无法获取/

任何人都知道我做错了什么?感谢

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use('/', express.static('./static')).
    use('/images', express.static( '../images')).
    use('/lib', express.static( '../lib'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var days=['Monday', 'Tuesday', 'Wednesday',
          'Thursday', 'Friday'];
var serviceDays = days.slice(0);
app.get('/reset/days', function(req, res){
  serviceDays = days.slice(0);
  res.json(serviceDays);
});
app.post('/remove/day', function(req, res){
  if (serviceDays.length > 2){
    serviceDays.splice(serviceDays.indexOf(req.body.day), 1);
    console.log(days);
    res.json(serviceDays);
  }else {
    res.json(400, {msg:'You must leave 2 days'});
  }
});
app.listen(8081);

1 个答案:

答案 0 :(得分:2)

我没有看到您为此路径.get()执行/,这与localhost:8081相同。尝试在代码中执行类似的操作。

app.get('/', function(req, res){
  serviceDays = days.slice(0);
  res.json(serviceDays);
});

这与你在这里的相同

app.get('/reset/days', function(req, res){
  serviceDays = days.slice(0);
  res.json(serviceDays);
});

因此,如果您转到localhost:8081localhost:8081/reset/days,您应该得到相同的结果。消息cannot GET /所说的是没有为请求的URL设置路由。

另请注意:您的代码中似乎使用了app.use('/', express.static('./static'))。但看起来这只是为“静态”,“图像”和“lib”定义所有静态路由。

以下是.use vs .get

的更多信息
  1. Difference between app.use and app.get in express.js
  2. http://expressjs.com/en/4x/api.html#app.use
  3. http://expressjs.com/en/4x/api.html#app.get