我之前已经创建了一个教程Node / Express应用程序并且工作正常,在尝试复制它并创建我的新项目(ubuntu,然后是windows)之后,基本路由每次都失败并且404s,非常令人沮丧!
我试图接触/finddrink/margarita
或任何我想要的饮料。
这是我的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;
});
};
我正在使用正在运行的项目阅读笔记本电脑上的代码,然后在桌面上使用几乎完全相同的代码阅读,并且似乎无法找到任何错误,任何想法?谢谢!
答案 0 :(得分:0)
你有一个错字:
您的路线在index.js文件中设置为findrink:
router.get('/findrink/:name', function (req,res){
});
但是你要求使用双d进行finddrink。
您应该考虑将路线重命名为更安静的方法:
router.get('/drinks/:name', function (req,res){
});
或
router.get('/drinks/find/: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){
});