Nodejs express.router为空
Nodejs express.router为空
console.log(typeof express.router)结果为undefined app.use(express.router(routes))如何使用啊
你好,express.router(routes),提示没有这个方法,不知道是什么原因?express.router和app.router有什么不同?
3.0已经删了这个方法了,这个方法原来在nodejs开发指南上用的,现在deprecated,用app.router或者自己的routes文件,routes(app);
当使用routes后,路由了http://examples.com/artice/:page 这里可以通过req.params.page来获取这个page 那如果这时,我还希望有这样的url,http://examples.com/article/2?keyword=mykey 这时我还有办法来获取keyword的值吗。 其实还有什么办法。
我的解决方案是这样: app.js 中 var routes =require(’./routes’); app.confirgure() 中添加app.use(routes(app)); routes/index.js 代码如下: 其实就是将app对象当参数传给自己的路由函数,最后return 回来给app.use
/*
* GET home page.
*/
var user = require('./user')
, md = require('./markdown');
module.exports = function (app) {
app.get('/', function(req, res){
res.render('index', { title: 'Express' });
});
app.get('/users', user.list);
app.get('/markdown', md.demo);
return app.router;
}</code></pre>
req.body.keyword
当您在使用 express.router
时遇到问题,可能是因为您所使用的 Express 版本较新。express.router
在较旧版本的 Express 中可用,但在现代版本中已经被移除。现在应该使用 express.Router()
来创建路由。
以下是如何正确使用路由的示例:
示例代码
-
安装 Express(如果尚未安装):
npm install express
-
创建一个简单的 Express 应用:
const express = require('express'); const app = express(); // 创建一个新的路由器实例 const router = express.Router(); // 定义路由 router.get('/', (req, res) => { res.send('Hello World!'); }); // 将路由器应用到主应用 app.use(router); // 启动服务器 app.listen(3000, () => { console.log('Server is running on port 3000'); });
解释
-
express.Router()
:这是用于创建新的路由器实例的方法。您可以定义多个路由,并将它们挂载到主应用上。 -
app.use(router)
:这行代码将路由器应用到主应用中,使路由器中的所有路由都可用。 -
router.get('/', ...)
:这是一个 GET 请求的路由处理程序。当用户访问根路径/
时,将返回 “Hello World!”。
如果您之前尝试使用 express.router
并发现它为 undefined
,那么您可能是在较新版本的 Express 中使用了旧的 API。改为使用上述方法即可解决问题。