Express router.get 失败,但 app.get 有效
Express router.get fails, yet app.get works
在浏览 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
有关吗?有一次我确实 copy/pasted 教程中的代码,但我仍然得到 404s。
路由器必须连接到您的 Express 应用才能成为您服务器的一部分。
app.use(yourRouter);
或者,更常见的是,使用一个路径将路由器的效果隔离到仅以特定路径开头的 URL,并且路由器自己的 URL 是相对于此路径的:
app.use('/somePath', yourRouter);
没有这个,它只是一个未连接到任何服务器的已声明和配置的路由器。
快递文件examples here.
您引用的教程似乎没有显示使用路由器的这一部分。
在浏览 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
有关吗?有一次我确实 copy/pasted 教程中的代码,但我仍然得到 404s。
路由器必须连接到您的 Express 应用才能成为您服务器的一部分。
app.use(yourRouter);
或者,更常见的是,使用一个路径将路由器的效果隔离到仅以特定路径开头的 URL,并且路由器自己的 URL 是相对于此路径的:
app.use('/somePath', yourRouter);
没有这个,它只是一个未连接到任何服务器的已声明和配置的路由器。
快递文件examples here.
您引用的教程似乎没有显示使用路由器的这一部分。