Javascript NodeJS+Express 404基本路由
我之前已经创建了一个tutorial Node/Express应用程序,它工作得很好,在尝试复制它并使我的新项目ubuntu,然后windows,基本路由失败,每次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
我想喝点玛格丽塔或任何我想要的饮料 以下是我的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){
});