Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS+Express 404基本路由_Javascript_Node.js_Express - Fatal编程技术网

Javascript NodeJS+Express 404基本路由

Javascript NodeJS+Express 404基本路由,javascript,node.js,express,Javascript,Node.js,Express,我之前已经创建了一个tutorial Node/Express应用程序,它工作得很好,在尝试复制它并使我的新项目ubuntu,然后windows,基本路由失败,每次404,超级令人沮丧 我想喝点玛格丽塔或任何我想要的饮料 以下是我的app.js和相关内容: var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); app.use('/', routes

我之前已经创建了一个tutorial Node/Express应用程序,它工作得很好,在尝试复制它并使我的新项目ubuntu,然后windows,基本路由失败,每次404,超级令人沮丧


我想喝点玛格丽塔或任何我想要的饮料

以下是我的app.js和相关内容:

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

app.use('/', routes);
app.use('/users', users);
这是我的index.js,在routes文件夹中:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

/*GET drink recipe*/
router.get('/findrink/:name', function (req,res){
    var db = req.db;
    var drinkName = req.params.name;
    db.collection('recipes').findOne({name: drinkName}, function (err, result) {
        res.send(result);
    });
});
module.exports = router;
最后,尝试访问此GET的函数:

function loadDrink(drinkToGet) {
  var address = '/finddrink/' + drinkToGet;

  $.getJSON(address, function (item) {
    document.getElementById('drinkTitle').innerHTML = item.name;
  });
};
我在笔记本电脑上阅读运行项目的代码,然后在桌面上阅读几乎相同的代码,似乎没有发现任何错误,有什么想法吗?谢谢

您有一个输入错误:

您的路线在index.js文件中设置为findrink:

router.get('/findrink/:name', function (req,res){
});
但你要的是双d的FindLink

您应该考虑将路由重命名为一种更为平稳的方法:

router.get('/drinks/:name', function (req,res){
});

这样,您就可以将API扩展到更多路由:

// POST /drinks/ creates new drink
router.post('/drinks/', function (req,res){
});

// PUT /drinks/:name edits a drink by na,e
router.put('/drinks/:name', function (req,res){
});

// DELETE /drinks/:name deletes a drink by name
router.delete('/drinks/:name', function (req,res){
});

您试图访问的URL是什么?/finddrink/margarita您是否尝试将/findrink/:name路由放在app.js而不是index.js中?或者将/findrink路由放在单独的文件中,然后使用app.use'/findrink',findrinkRoutes?刚试过将路线移动到app.js,仍然得到404。我最初在一个单独的drink.js文件中有这个路由,并试图将它粘贴到索引中以解决问题,但事实并非如此。我很尴尬,因为我浪费了带宽做了这么愚蠢的事情。我最初有这个设计,但为了测试而改变了它。我会把它放回原样。
// POST /drinks/ creates new drink
router.post('/drinks/', function (req,res){
});

// PUT /drinks/:name edits a drink by na,e
router.put('/drinks/:name', function (req,res){
});

// DELETE /drinks/:name deletes a drink by name
router.delete('/drinks/:name', function (req,res){
});