Express router.get失败,但app.get工作

时间:2016-09-09 01:05:19

标签: node.js express middleware

在浏览this tutorial时,我遇到了路由器方法不起作用的问题。使用npm start并访问localhost:3000 / api / puppies会收到404错误。但是当我改变了

var router = express.Router();
router.get('/api/puppies', db.getAllPuppies);

var app = express();
app.get('/api/puppies', db.getAllPuppies);

并使用node index.js运行,数据按预期打印。我也尝试过放在我文件的开头

app.use(express.static(__dirname + '/api/'));

但没有快乐。这与npm start有关吗?有一次,我从教程中复制/粘贴了代码,但仍然得到了404。

1 个答案:

答案 0 :(得分:1)

路由器必须连接到您的快速应用才能成为服务器的一部分。

app.use(yourRouter);

或者更常见的是,路径将路由器的影响隔离到仅以特定路径开头的URL,并且路由器自己的URL与此路径相关:

app.use('/somePath', yourRouter);

如果没有这个,它只是一个声明和配置的路由器,没有连接到任何服务器。

快速文档examples here

您引用的教程似乎没有显示使用路由器的这一部分。